1. 程式人生 > >Redis原理與Redis叢集建立

Redis原理與Redis叢集建立

1. 實驗用的叢集的結構

                                              應用伺服器

                                                      |

                                         Redis叢集管理器

             |                                        |                                       |

主節點1 從節點1               主節點2 從節點2                 主節點3 從節點3

2. 原理

(1)叢集管理器將16384個雜湊槽點平均分配到三臺master上,只有master會有槽點。具體演算法是對key進行雜湊求餘,得到的餘數落在那個節點的雜湊槽點範圍內,就分到那臺master上

(2)只有master才有槽點

(3)一個從節點只對應一個master節點,即只會複製那個master節點的資料。如果master節點壞了,其中一個slave節點會升級為master。如果master和從節點都壞了,那麼master對應的資料就丟了。

(4)只有主節點可以被寫入,從節點只是同步。

(5)AOF同步儲存,RDB有儲存的規則。

3. 建立叢集步驟(用一臺機器來模擬)

(1)建立六個資料夾

(2)將redis.conf檔案複製到六個資料夾中

(3)依次修改如下配置:port,bind,pidfile,logfile,cluster-enabled yes, cluster-config-file, cluster-node-timeout

(4)對六個資料夾,分別執行 sudo ./redis-server redis.conf (注意,此時只是將六個redis執行起來了,並沒有組成叢集)

(5)安裝ruby: sudo apt install Ruby

(6)安裝redis介面:sudo gem install redis

(7)建立叢集./redis-trib.rb create --replicas 1 (1分拷貝) <6個ip:port>

(8)叢集就建立好了

(9)開啟client:   ./redis-cli -c -h <ip> -p <port> 可以是任何節點中的ip port

(10)通過client新增資料,如果key正好落在client對應的節點,就沒有轉發訊息。否則,你會看到有一個轉發訊息。