redis集群搭建中遇到的一些問題


redis單機模式啟動后,修改完配置文件,使用以下命令創建redis集群:

sudo ./src/redis-trib.rb create --replicas 1 ip1:6379 ip2:6379 ip3:6379

結果報錯:

>>> Creating cluster
[ERR] Sorry, can't connect to node ip1:6379

在網上查找資料發現,可能有以下幾種原因:

1.ruby的版本太低。

2.關閉redis的保護模式。

3.redis的配置文件中bind的ip需要時外網ip,127.0.0.1不行,確保外網能telnet通。

4.在將redis寫入注冊表時,開啟了redis的密碼模式,也會導致這個問題,需要關閉密碼模式。

以上幾種方法對應完了,這個錯誤就沒有了。

 

接着報了第二個錯:

[ERR] Node ip2:6379 is not configured as a cluster node.

原因是第二台redis服務器沒有開啟集群模式,修改第二台服務器的redis的配置文件:

cluster-enabled yes

appendonly yes

 

 

修改完了之后,重啟第二台redis服務時報了這個錯:

14652:M 21 Feb 18:26:50.758 # Sorry, the cluster configuration file nodes.conf is already used by a different Redis Cluster node.
Please make sure that different nodes use different cluster configuration files.

改變這台redis的配置文件指向的nodes.conf文件即可。

 

再記錄幾個redis下常用的命令:

#查看redis版本
./src/redis-server -v   

#啟動redis服務
sudo ./src/redis-server ./redis.config

#停止redis服務的兩種方式:
#第一種:
sudo ./src/redis-cli -h 127.0.0.1 -p 6379 shutdown
#第二種:
#進入redis-cli,然后用shutdown命令停止

#查看集群情況:
redis-cli -h ip -p 6379 cluster nodes

#查看集群信息:
172.30.1.160:6379> cluster nodes

#添加節點:
redis-trib.rb add-node --slave --master-id 08525dd167adbfe4b11b8b8e598efde2de11f31e slaveIp:6380 masterIp:6379 

 

 

redis集群會經常出錯,使用cluster nodes命令和redis-trid.rb check命令查詢到的集群狀態信息不對,刪掉節點之后,在集群狀態信息中還有記錄,各種辦法都沒辦法解決問題,好在是實驗環境,就干掉整個集群,重新裝了。集群的緩存信息會存在三種文件里:node.conf配置文件,dump.rdb,appendonly.aof。刪掉三個文件,重新創建集群即可。 

 

 

創建集群中還報過這個錯誤,刪除了三種緩存文件還是不行,最后登入每個節點用flushall和cluster reset命令解決了。

/usr/lib64/ruby/gems/1.8/gems/redis-3.2.1/lib/redis/client.rb:113:in `call': ERR Slot 12182 is already busy (Redis::CommandError)
from /usr/lib64/ruby/gems/1.8/gems/redis-3.2.1/lib/redis.rb:2556:in `method_missing'
from /usr/lib64/ruby/gems/1.8/gems/redis-3.2.1/lib/redis.rb:37:in `synchronize'
from /usr/lib/ruby/1.8/monitor.rb:242:in `mon_synchronize'
from /usr/lib64/ruby/gems/1.8/gems/redis-3.2.1/lib/redis.rb:37:in `synchronize'
from /usr/lib64/ruby/gems/1.8/gems/redis-3.2.1/lib/redis.rb:2555:in `method_missing'
from ./src/redis-trib.rb:212:in `flush_node_config'
from ./src/redis-trib.rb:776:in `flush_nodes_config'
from ./src/redis-trib.rb:775:in `each'
from ./src/redis-trib.rb:775:in `flush_nodes_config'
from ./src/redis-trib.rb:1296:in `create_cluster_cmd'
from ./src/redis-trib.rb:1696:in `send'
from ./src/redis-trib.rb:1696

 

創建集群的時候,一直卡在Waiting for the cluster to join.....這一步,先刪除三種文件:node.conf配置文件,dump.rdb,appendonly.aof;再把iptables關閉:sudo service iptables stop

 

轉載請標明出處: http://www.cnblogs.com/gaojiang/p/6427693.html 

 

 

再附幾個查找資料過程中發現幾篇比較好的帖子:

從集群的原理到搭建,講的比較透徹:

http://shift-alt-ctrl.iteye.com/blog/2284890

主要講了對redis集群的一些操作命令:

http://blog.51yip.com/nosql/1726.html

分析了搭建集群可能出錯的原因:

https://my.oschina.net/u/2277929/blog/727734


免責聲明!

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



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