1. 程式人生 > 資料庫 >Redis-5.0.3 叢集搭建

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 否則建立叢集時無法訪問對應的埠,無法建立叢集

          daemonize yes //redis後臺執行
          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秒,可自行設定
          appendonly yes //aof日誌開啟 有需要就開啟,它會每次寫操作都記錄一條日誌

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時的狀態