redis5.0以后版本 搭建集群


redis5.0以前為什么要用ruby?

因為在redis/src中有一個文件redis-trib.rb,是用Ruby寫的,用來搭建redis集群(redis3.0版本時才開始支持集群),所以想要搭建redis集群需要有一個能執行.rb的Ruby運行環境。
同時ruby的運行又依賴redis.gem這個文件。
所以在5.0以前 集群的搭建需要 安裝ruby環境,下載gem文件。
 

redis5.0以后的版本
集群搭建,不需要借助ruby
https://blog.csdn.net/qq_25215821/article/details/100997778

新版命令:
src/redis-cli --cluster create --cluster-replicas 1
ip1:6379 ip2:6380 ip3:6381
ip1:6382 ip2:6383 ip3:6384

坑-1: https://www.liangzl.com/get-article-detail-40471.html

      redis集群部署一直卡在  Waiting for the cluster to join ......  

   原因:redis集群總線端口為redis客戶端端口加上10000,比如說你的redis 6379端口為客戶端通訊端口,那么16379端口為集群總線端口

   解決:添加redis 集群總線端口 和每個redis實例的通信端口
坑-2
https://www.jianshu.com/p/7720c922dd80
      ERR] Node 192.168.10.204:6379 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.
解決:
  首先關閉redis
  其次如果之前redis有數據存在,flushall清空;
  然后關閉redis刪除 redis目錄如下文件: dump.rdb,nodes-6379.conf
  重啟解決

加節點(擴容)

1-    加配置文件,主,從,修改端口,啟動兩個新的redis

2-    新主節點與已知主節點進行關聯

3-    綁定從節點      

redis-cli --cluster add-node newip:newport knownip:knownport

進入從節點

執行 CLUSTER REPLICATE masterid

4-    重新分配槽位    redis-cli --cluster reshared newmasterip:port

減節點

先刪除從節點;再刪除主節點

redis-cli --cluster del-node  ip:port id

刪除主節點時:

1-    先把槽位放回。注意:目前只能把master的數據遷移到一個節點上,暫時做不了平均分配功能,或者可以自己手動分配平均的槽位給各個主節點

redis-cli --cluster reshard delip:delport

①這里是指定分配的槽位。

 

②緊接着是指定接收槽位的節點id

 

③這里是指定貢獻出槽位的節點id,步驟是 先輸入 節點id,回車之后,再輸入 done,再回車

 

2-    再進行移除節點

redis-cli --cluster del-node ip:port id

 

 版本5.0.2集群搭建:

https://blog.csdn.net/qq_34002221/article/details/85019752

https://blog.csdn.net/qq_25215821/article/details/100997778

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM