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對應的節點,就沒有轉發訊息。否則,你會看到有一個轉發訊息。