原文:中介軟體(1)分布式快取
為了提高**效能,一般都會使用到快取,快取的資料來源包括資料庫,外部介面等,快取一般分為兩種,本地快取和分布式快取,這裡主要總結的是分布式快取。
最常用的分布式快取是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。
原文:中介軟體(1)分布式快取
為了提高**效能,一般都會使用到快取,快取的資料來源包括資料庫,外部介面等,快取一般分為兩種,本地快取和分布式快取,這裡主要總結的是分布式快取。
最常用的分布式快取是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。
分布式訊息中介軟體
一 分布式訊息中介軟體入門 訊息中介軟體主要實現分布式系統中解耦 非同步訊息 流量銷鋒 日誌處理等場景。現在生產中用得最多的訊息佇列有 activemq,rabbitmq,kafka,rocketmq 等。jms 規範 類似於 jdbc 的一套介面規範,但不同的是他是面向的訊息服務,提供一套標準 a...
分布式訊息中介軟體 kafka
在我們大量使用分布式資料庫 分布式計算集群的時候,是否會遇到這樣的一些問題 這個時候,我們就可以用到分布式訊息系統了。雖然上面的描述更偏向於乙個日誌系統,但確實kafka在實際應用中被大量的用於日誌系統。首先我們要明白什麼是訊息系統,在kafka官網上對kafka的定義叫 a distributed...
Redis分布式中介軟體TwemProxy
twemproxy,也叫nutcraker。是乙個twtter開源的乙個redis和memcache 伺服器。redis作為乙個高效的快取伺服器,非常具有應用價值。但是當使用比較多的時候,就希望可以通過某種方式 統一進行管理。避免每個應用每個客戶端管理連線的鬆散性。同時在一定程度上變得可以控制。搜尋...