Redis-5.0.3 叢集搭建
1、下載redis 安裝包,下載地址:
2、解壓編譯, 解壓到當前目錄 tar -zxf /redis-5.0.3.tar.gz -C ./ # 進入檔案目錄 cd redis-5.0.3/ # 編譯 make
3、安裝結束後,執行一下操作:
1)修改redis.conf檔案,修改引數如下:
port 7000 //埠7000,7002,7003
bind 本機ip //預設ip為127.0.0.1 需要改為其他節點機器可訪問的ip 否則建立叢集時無法訪問對應的埠,無法建立叢集
pidfile /var/run/redis_7000.pid //pidfile檔案對應7000,7001,7002
cluster-enabled yes //開啟叢集 把註釋#去掉
cluster-config-file nodes_7000.conf //叢集的配置 配置檔案首次啟動自動生成 7000,7001,7002
cluster-node-timeout 15000 //請求超時 預設15秒,可自行設定
4、複製6個Redis資料夾分別存放redis的安裝檔案,並各個配置檔案也就是redis.conf檔案下的每個埠號
5、分別進入bin資料夾下,啟動各個redis服務,啟動命令:./redis-server ./redis.conf
6、啟動之後,進入Redis解壓後的資料夾也就是,redis-5.0.3的那個資料夾,進入src原始碼目錄,執行建立叢集分配槽命令:
./redis-cli --cluster create 192.168.1.132:6380 192.168.1.132:6381 192.168.1.132:6382 192.168.1.132:6383 192.168.1.132:6384 192.168.1.132:6385 --cluster-replicas 1
7、進入其中一個Redis服務,./redis-cli -c -h 192.168.1.132 -p 6380,輸入檢視叢集資訊命令,cluster info,如果cluster_state為ok,則搭建成功。
備註:搭建過程中可能出現的錯誤如下,
1)如果出現CLUSTERDOWN: hash slot not served,則表示為redis的叢集分配槽沒有正確執行,Redis的版本不一致,redis老版本的執行命令是使用redis-trib.rb進行建立的,之後已經遷移到了redis-cli下,目前5.0.3的執行命令就是第6條的命令。
2)如果出現Node 192.168.1.132:6380 is not empty之類的錯誤資訊,則表示為之前配置檔案的IP修改了之後,並沒有正常執行,需要刪除快取這三個檔案appendonly.aof dump.rdb nodes.conf,這些檔案是之前執行ip:127.0.0.1時生成的,改為真機ip後在執行並沒有生效。刪除之後,執行起來後,在用客戶端進入該埠Redis服務,執行flushdb命令清空當前資料庫。(dump.rdb是由Redis伺服器自動生成的 預設情況下 每隔一段時間redis伺服器程式會自動對資料庫做一次遍歷,把記憶體快照寫在一個叫做“dump.rdb”的檔案裡,這個持久化機制叫做SNAPSHOT。有了SNAPSHOT後,如果伺服器宕機,重新啟動redis伺服器程式時redis會自動載入dump.rdb,將資料庫狀態恢復到上一次做SNAPSHOT時的狀態)