1. 程式人生 > >Redis叢集方案應該怎麼做?都有哪些方案?

Redis叢集方案應該怎麼做?都有哪些方案?

  1. twemproxy,它類似於一個代理方式,使用方法和普通redis無任何區別,設定好它下屬的多個redis例項後,使用時在本需要連線redis的地方改為連線twemproxy,它會以一個代理的身份接收請求並使用一致性hash演算法,將請求轉接到具體redis,將結果返回twemproxy。使用方式簡單(相對redis只需修改連線埠),對舊專案擴充套件的首選。問題:twemproxy自身單埠例項的壓力,使用一致性hash後,對redis節點數量改變時候的計算值的改變資料無法自動移動到新的節點。
  2. codis,目前用的最多的叢集方案,基本和twemproxy一致的效果,但它支援在節點數改變情況下,舊節點資料可恢復到新hash節點。
  3. redis cluster3.0自帶的叢集,特點在於他的分散式演算法不是一致性hash,而是hash槽的概念,以及自身支援節點設定從節點。
  4. 在業務程式碼層實現,起幾個毫無關聯的redis例項,在程式碼層,對key進行hash計算,然後去對應的redis例項操作資料。這種方式對hash層程式碼要求比較高,考慮部分包括,節點失效後的代替演算法方案,資料震盪後的自動指令碼恢復,例項的監控,等等。