主要的集群搭建不多介绍直接上连接,推荐这个: http://blog.java1234.com/blog/articles/326.html,
另推荐一个在gem install redis 时出错 解决文章:https://www.cnblogs.com/carryping/p/7447823.html
那么接下载我们进入主题:(入坑)
首先在redis 各个节点搭建好后进行创建 redis 集群执行
redis-trib.rb create --replicas 1 192.68.1.100:123 192.168.1.200:456
出现 [ERR] Sorry, can't connect to node 错误,不用慌张恭喜你进入第一个坑
收先检查redis 节点配置
192.168.1.100 服务器中的 redis_123.conf
192.168.1.200服务器中的 redis_456.conf
bind 属性是否还是127.0.0.1 如果是请改过来
再次执行,如果还出现 [ERR] Sorry, can't connect to node 那么恭喜你进入了第二个坑
这时请将配置文件中的 requirepass 给注释掉即可,当然这时我们创建集群时肯定需要密码的不然整个redis 将会暴露出去
有两种解决方式:
第一 :requirepass 不设置密码 在集群创建好后用命令方式创建
redis-cli -c -p 7000
config set masterauth passwd123
config set requirepass passwd123
config rewrite
第二: requirepass 设置密码,在进行一下操作
vim redis-trib.rb 编辑源码找到一下代码行
@r = Redis.new(:host => @info[:host], :port => @info[:port], :timeout => 60)
修改为:
@r = Redis.new(:host => @info[:host], :port => @info[:port], :timeout => 60, :password => "你的密码"))
修改完成后 返回 在进行多机集群创建,此时创建成功了那说明 兄弟运气好啊!
如果还出现报错信息类似 [ERR] node xxx 7001. xxx .....
不用着急,请停掉所有节点找到所有节点 redis_xxx.conf 配置文件下的
cluster-config-file 属性指定目录下的 nodes-xxx.conf 删除再重新启动各个节点,此时再次创建集群。
此时创建成功了说明 兄弟运气好啊!
如果输入 yes 加载配置 一直出现 Waiting for the cluster to join ........................................
呵呵,小问题只不过我问题找了接近1小时,原因是
>>> redis集群不仅需要开通redis客户端连接的端口,而且需要开通集群总线端口
>>> 集群总线端口为redis客户端连接的端口 + 10000
也就是说 如果你在 iptables 开放的端口为 7001 那么也的开放 17001端口
这是再次创建redis 集群,这是大多数都没有问题了。如果还出现类似一下错误
/usr/local/rvm/gems/ruby-2.4.2/gems/redis-4.0.1/lib/redis/client.rb:119:in `call': ERR Slot 1151 is already busy (Redis::CommandError)
from /usr/local/rvm/gems/ruby-2.4.2/gems/redis-4.0.1/lib/redis.rb:2764:in `block in method_missing'
from /usr/local/rvm/gems/ruby-2.4.2/gems/redis-4.0.1/lib/redis.rb:45:in `block in synchronize'
from /usr/local/rvm/rubies/ruby-2.4.2/lib/ruby/2.4.0/monitor.rb:214:in `mon_synchronize'
from /usr/local/rvm/gems/ruby-2.4.2/gems/redis-4.0.1/lib/redis.rb:45:in `synchronize'
from /usr/local/rvm/gems/ruby-2.4.2/gems/redis-4.0.1/lib/redis.rb:2763:in `method_missing'
from /usr/local/bin/redis-trib.rb:212:in `flush_node_config'
from /usr/local/bin/redis-trib.rb:776:in `block in flush_nodes_config'
from /usr/local/bin/redis-trib.rb:775:in `each'
from /usr/local/bin/redis-trib.rb:775:in `flush_nodes_config'
from /usr/local/bin/redis-trib.rb:1296:in `create_cluster_cmd'
from /usr/local/bin/redis-trib.rb:1700:in `<main>'
那么恭喜你又入口这个坑比较浅很容易跳出来了
只需要进入你的每个redis中 redis-cli -h 192.168.1.100 -c -p 7001 -a 你的密码
依次执行一下命令
$flushall
$cluster reset soft
$exit
清楚库中的数据等等
再次创建
redis-trib.rb create --replicas 1 192.68.1.100:123 192.168.1.200:456
至此 跳坑完毕
谢谢你阅读此文章,第一次写博客,有些不清楚的地方还请见谅