Memcache和Redis區別
memcache官方定義
Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.
redis官方定義
Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.
版權相同
它們都是使用的bsd協議,使用它的專案可以用於商業使用者,不必釋出二次修改的程式碼,可以修改原始碼。
資料型別
redis資料型別豐富,支援set liset等型別
memcache支援簡單資料型別,需要客戶端自己處理複製物件
永續性
redis支援資料落地持久化儲存
memcache不支援資料持久儲存
分散式儲存
redis支援master-slave複製模式
memcache可以使用一致性hash做分散式
value大小不同
memcache是一個記憶體快取,key的長度小於250字元,單個item儲存要小於1M,不適合虛擬機器使用
資料一致性不同
redis使用的是單執行緒模型,保證了資料按順序提交。
memcache需要使用cas保證資料一致性。CAS(Check and Set)是一個確保併發一致性的機制,屬於“樂觀鎖”範疇;原理很簡單:拿版本號,操作,對比版本號,如果一致就操作,不一致就放棄任何操作
cpu利用
redis單執行緒模型只能使用一個cpu,可以開啟多個redis程序
參考
http://my.oschina.net/seava/blog/228519
http://www.cnblogs.com/qunshu/p/3196972.html
http://www.blogjava.net/chhbjh/archive/2012/02/21/370472.html
http://maoyidao.iteye.com/blog/1846089