Redis集群搭建

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上唯一的区别在于,安装Rubyrubygems,使用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

你可能感兴趣的:(Redis集群搭建)