為了提高網站性能,一般都會使用到緩存,緩存的數據源包括資料庫,外部介面等,緩存一般分為兩種,本地緩存和分散式緩存,這裡主要總結的是分散式緩存。 Memcached和Redis 最常用的分散式緩存是Redis和Memcached,它們都是分散式緩存技術中的一種,可能大部分的開發人員都聽說或者接觸過,但 ...
為了提高網站性能,一般都會使用到緩存,緩存的數據源包括資料庫,外部介面等,緩存一般分為兩種,本地緩存和分散式緩存,這裡主要總結的是分散式緩存。
Memcached vs Redis
最常用的分散式緩存是Redis和Memcached,它們都是分散式緩存技術中的一種,可能大部分的開發人員都聽說或者接觸過,但是很少有人認真分析它們之間有什麼不同,以及使用場景。
Memcached是 我們從以下幾個方面對它們進行比較。
網路IO模型
Memcached是多線程處理。
Redis是單線程處理。
記憶體管理機制
Memcached是使用預分配的記憶體池的方式。
Redis是現場申請記憶體的方式。
支持的數據類型
Memcached僅支持key/value。
Redis除了支持key/value外,還支持list,set,sorted Set和Hash,支持的數據類型更豐富。
持久化
Memcached不支持持久化的。
Redis支持持久化,有兩種持久化策略:基於RDB快照和AOF日誌。
集群
Memcached和Redis都支持集群部署。
性能
由於Memcached使用多線程,所以總體上性能要優於Redis。
應用場景
通過上面這幾方面的比較,基本上可以確定它們的應用場景:
1,首先Memcached和Redis都可以作為分散式緩存實現技術中的一種。
2,如果需要支持除key/value外更多的數據類型,請選擇Redis。
3,如果需要支持數據的持久化,請選擇Redis。
4,如果對緩存性能要求極高,請考慮Memcached。