Redis 和 Memcached 都是基於內存的數據存儲系統。Memcached是高性能分布式內存緩存服務,其本質上就是一個內存key-value數據庫。Redis是一個開源的key-value存儲系統。與Memcached類似,Redis將大部分數據存儲在內存中,支持的數據類型包括:字符串、哈希表、鏈表、集合、有序集合以及基於這些數據類型的相關操作。
區別
1、Redis和Memcache都是將數據存放在內存中,都是內存數據庫。不過memcache還可用於緩存其他東西,例如圖片、視頻等等;
2、Redis不僅僅支持簡單的k/v類型的數據,同時還提供list,set,hash等數據結構的存儲;
3、虛擬內存–Redis當物理內存用完時,可以將一些很久沒用到的value 交換到磁盤;
4、過期策略–memcache在set時就指定,例如set key1 0 0 8,即永不過期。Redis可以通過例如expire 設定,例如expire name 10;
5、分布式–設定memcache集群,利用magent做一主多從;redis可以做一主多從。也可以一主一從;
6、存儲數據安全–memcache掛掉后,數據沒了;redis可以定期保存到磁盤(持久化);
7、災難恢復–memcache掛掉后,數據不可恢復; redis數據丟失后可以通過aof恢復;
8、Redis支持數據的備份,即master-slave模式的數據備份;
9、應用場景不一樣:Redis出來作為NoSQL數據庫使用外,還能用做消息隊列、數據堆棧和數據緩存等;Memcached適合於緩存SQL語句、數據集、用戶臨時性數據、延遲查詢數據和session等。
使用場景
1、如果有持久方面的需求或對數據類型和處理有要求的應該選擇redis。
2、如果簡單的key/value 存儲應該選擇memcached。