1. 程式人生 > >錯過血虧!深入學習Redis叢集搭建方案及實現原理

錯過血虧!深入學習Redis叢集搭建方案及實現原理

本文將詳細介紹叢集,主要內容包括:

 ●  叢集的作用 ●  叢集的搭建方法及設計方案 ●  叢集的基本原理 ●  客戶端訪問叢集的方法

 ●  實踐須知(叢集伸縮、故障轉移、引數優化等)

叢集的作用

叢集,即 Redis Cluster,是 Redis 3.0 開始引入的分散式儲存方案。叢集由多個節點(Node)組成,Redis 的資料分佈在這些節點中。

叢集中的節點分為主節點和從節點:只有主節點負責讀寫請求和叢集資訊的維護;從節點只進行主節點資料和狀態資訊的複製。

叢集的作用,可以歸納為兩點:

資料分割槽

資料分割槽(或稱資料分片)是叢集最核心的功能。叢集將資料分散到多個節點:

 ●  一方面突破了 Redis 單機記憶體大小的限制,儲存容量大大增加。 ●  另一方面每個主節點都可以對外提供讀服務和寫服務,大大提高了叢集的響應能力。

Redis 單機記憶體大小受限問題,在介紹持久化和主從複製時都有提及。

例如,如果單機記憶體太大,bgsave 和 bgrewriteaof 的 fork 操作可能導致主程序阻塞,主從環境下主機切換時可能導致從節點長時間無法提供服務,全量複製階段主節點的複製緩衝區可能溢位。

高可用

叢集支援主從複製和主節點的自動故障轉移(與哨兵類似),當任一節點發生故障時,叢集仍然可以對外提供服務。本文內容基於 Redis 3.0.6。

叢集的搭建

我們將搭建一個簡單的叢集:共 6 個節點,3 主 3 從。方便起見,所有節點在同一臺伺服器上,以埠號進行區分,配置從簡。

原文連結