redis cluster的介绍及搭建
Redis Cluster
准备6台机器,安装redis(3master,3slave)
192.168.0.116:7001
192.168.0.117:7002
192.168.0.118:7003
192.168.0.119:7004
192.168.0.120:7005
192.168.0.121:7006
修改conf
cluster-enabled放开,yes
daemonize yes
安装ruby
yum install -y ruby
yum install -y rubygems
gem install redis
cp /usr/local/redis-xxxx/src/redis-trib.rb /usr/local/redis/bin
开放端口
开放7001,7002,7003,7004,7005,7006以及17001,17002,17003,17004,17005,17006
启动
cd /usr/local/redis/bin
redis-trib.rb create –replicas 1 192.168.0.116:7001 192.168.0.117:7002 192.168.0.118:7003 192.168.0.119:7004 192.168.0.120:7005 192.168.0.121:7006
客户端连接集群
./redis-cli -h 192.168.0.116 -p 7001 -c
关闭客户端
./redis-cli -p 7001 shutdown
遇到问题:
Can I set the above configuration? (type 'yes' to accept): yes
/usr/lib/ruby/gems/1.8/gems/redis-3.0.0/lib/redis/client.rb:79:in `call': ERR Slot 16011 is already busy (Redis::CommandError)
原因是第一次集群出错导致槽分配出现问题。
解决方案:
- 把全部的redis目录下的nodes-conf删除
- 打开redis.conf把# cluster-config-file nodes-6379.conf的#号放开,6379改为对应的端口。
- 再次集群
注意:
有同学习惯用windows redis客户端,但是这个客户端有个弊端,只能用于单机版,不能用于生产集群(即单机伪集群可以使用)