1.搭建步骤
wiki:
1:http://www.cnblogs.com/mafly/p/redis_cluster.html
2:https://blog.csdn.net/plei_yue/article/details/78791440
1、更侧重与安装,2、更详细的描述了扩容、新增、删除、节点(主、从)
1、2均为Linux版本,Mac上唯一的区别在于,安装Ruby
和rubygems
,使用HomeBrew来进行安装即可,
另外可以参考如下文章:
Mac OS X
10.5和更高版本的Mac OS X已经安装Ruby和RubyGems。
如果您使用的是早期版本的Mac OS,请下载并安装最新版本的 Ruby 和RubyGems.
https://blog.csdn.net/happyteafriends/article/details/8225611
2.redis.conf 集群配置
主要配置以下几个参数:
port 9001(每个节点的端口号)
daemonize yes
bind 192.168.119.131(绑定当前机器 IP)
dir /usr/local/redis-cluster/9001/data/(数据文件存放位置)
pidfile /var/run/redis_9001.pid(pid 9001和port要对应)
cluster-enabled yes(启动集群模式)
cluster-config-file nodes9001.conf(9001和port要对应)
cluster-node-timeout 15000
appendonly yes
cluster-require-full-coverage no #默认是yes,只要有结点宕机导致16384个槽没全被覆盖,整个集群就全部停止服务,所以一定要改为no
3.踩的几个坑
3.1 redis cluster 集群重新分片故障处理
由于Mac OS自带的rubygems
版本较高,重新分片时报错
[WARNING] Node 10.21.10.120:7002 has slots in importing state (3398).
[WARNING] Node 10.21.14.251:7001 has slots in migrating state (3398).
[WARNING] The following slots are open: 3398
Check slots coverage...
[OK] All 16384 slots covered.
[ERR] Calling MIGRATE ERR Syntax error, try CLIENT (LIST | KILL | GETNAME | SETNAME | PAUSE | REPLY)
解决方案:
1、ruby gem安装的redis库,版本不能使用最新的4.0,否则redis-trib.rb reshard 127.0.0.1:7000 重新分片时会报语法错误。
1、卸载最新redis库,gem uninstall redis
2、安装3.x版本,gem install redis -v 3.3.5 测试3.2.1到3.3.5都可以,4.x以上的分片报错
2、使用fix来进行修复,具体命令如下:
./redis-trib.rb fix 10.21.10.120:7000
参考wiki:
https://my.oschina.net/juluking/blog/1606222
http://blog.51cto.com/hsbxxl/1978491
4.redis集群重启
参见文档:
https://blog.csdn.net/jing956899449/article/details/53611838
网友评论