1. 程式人生 > >etcd和redis的比較和日常使用場景

etcd和redis的比較和日常使用場景

個人觀點:etcd的紅火來源於kurbernetes用etcd做服務發現,而redis的興起則來源於memcache快取本身的侷限性。
etcd是一種分散式儲存,更強調的是各個節點之間的通訊,同步,確保各個節點上資料和事務的一致性,使得服務發現工作更穩定,本身單節點的寫入能力並不強。
redis更像是記憶體型快取,雖然也有cluster做主從同步和讀寫分離,但節點間的一致性主要強調的是資料,並不在乎事務,因此讀寫能力很強,qps甚至可以達到10萬+

兩者都是k-v儲存,但redis支援更多的儲存模式,包括KEY,STRING,HMAP,SET,SORTEDSET等等,因此redis本身就可以完成一些比如排序的簡單邏輯。而etcd則支援對key的版本記錄和txn操作和client對key的watch,因此適合用做服務發現。

日常使用中,etcd主要還是做一些事務管理類的,基礎架構服務用的比較多,容器類的服務部署是其主流。而redis廣泛地使用在快取伺服器方面,用作mysql的快取,通常依據請求量,甚至會做成多級快取,當然部分情況下也用做儲存型redis做持續化儲存。

之後會介紹一下兩者在程式碼裡的使用