1. 程式人生 > 其它 >簡述redis叢集的實現原理

簡述redis叢集的實現原理

在哨兵sentinel機制中,可以解決redis高可用問題,即當master故障後可以自動將slave提升為master,從而可以保證redis服務的正常使用,但是無法解決redis單機寫入的瓶頸問題,即單機redis寫入效能受限於單機的記憶體大小、併發數量、網絡卡速率等因素。
Redis Cluster特點如下:

  1. 所有Redis節點使用(PING機制)互聯
  2. 叢集中某個節點的是否失效,是由整個叢集中超過半數的節點監測都失效,才能算真正的失效
  3. 客戶端不需要proxy即可直接連線redis,應用程式中需要配置有全部的redis伺服器IP
  4. redis cluster把所有的redis node 平均對映到 0-16383個槽位(slot)上,讀寫需要到指定的redis node上進行操作,因此有多少個redis node相當於redis 併發擴充套件了多少倍,每個redis node 承擔16384/N個槽位
  5. Redis cluster預先分配16384個(slot)槽位,當需要在redis叢集中寫入一個key -value的時候,會使用CRC16(key) mod 16384之後的值,決定將key寫入值哪一個槽位從而決定寫入哪一個Redis節點上,從而有效解決單機瓶頸。