https://blog.csdn.net/u013474436/article/details/48632665
https://blog.csdn.net/chaoluo001/article/details/70740307
https://blog.csdn.net/buchengbugui/article/details/60869191
https://blog.csdn.net/zhangweiguangsunjiao/article/details/46659707
https://blog.csdn.net/buquan4041/article/details/52832552?fps=1&locationNum=5
Memcache和Redis區別:
- Redis中,並不是所有的數據都一直存儲在內存中的,這是和Memcache相比一個最大的區別。
- Redis在很多方面具備數據庫的特征,或者說就是一個數據庫系統,而Memcache只是簡單的K/V緩存。
- 他們的擴展都需要做集群;實現方式:master-slave、Hash。
- 在100k以上的數據中,Memcache性能要高於Redis。
- 如果要說內存使用效率,使用簡單的key-value存儲的話,Memcached的內存利用率更高,而如果Redis采用hash結構來做key-value存儲,由於其組合式的壓縮,其內存利用率會高於Memcache。當然,這和你的應用場景和數據特性有關。
- 如果你對數據持久化和數據同步有所要求,那么推薦你選擇Redis,因為這兩個特性Memcache都不具備。即使你只是希望在升級或者重啟系統后緩存數據不會丟失,選擇Redis也是明智的。
- Redis和Memcache在寫入性能上面差別不大,讀取性能上面尤其是批量讀取性能上面Memcache更強
共同點:Memcache,Redis 都是內存數據庫
區別:
Memcache
Memcache可以利用多核優勢,單實例吞吐量極高,可以達到幾十萬QPS,適用於最大程度扛量
只支持簡單的key/value數據結構,不像Redis可以支持豐富的數據類型。
無法進行持久化,數據不能備份,只能用於緩存使用,且重啟后數據全部丟失
Redis
支持多種數據結構,如string,list,dict,set,zset,hyperloglog
單線程請求,所有命令串行執行,並發情況下不需要考慮數據一致性問題。
支持持久化操作,可以進行aof及rdb數據持久化到磁盤,從而進行數據備份或數據恢復等操作,較好的防止數據丟失的手段。
支持通過Replication進行數據復制,通過master-slave機制,可以實時進行數據的同步復制,支持多級復制和增量復制.
支持pub/sub消息訂閱機制,可以用來進行消息訂閱與通知。
支持簡單的事務需求,但業界使用場景很少,並不成熟