你好,歡迎來到js代碼網。

微信登錄

首頁>系統/運維> 淺談Redis和Memcached的區別和使用場景

淺談Redis和Memcached的區別和使用場景

  • 分類:系統/運維
  • 時間:11-10
  • 閱讀:878

說到緩存技術,只要有一定經驗的開發人員,肯定會想到redis和memcached這兩個緩存技術,下面就來說一說這兩個緩存技術的區別和使用場景。

區別

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。

例子

在電子商務類的網站中,一般都有分類,然后還有搜索結果列表。

針對這種情況下,我們對分類的數據,可以使用memcached,因為分類數據一般不會改變,讀多寫少,直接存儲在memcached中,每次查詢都只需要從memcached中獲取就可以了。

相關文章

北京 28开奖走势图