环境
1 | OS: CentOS 7 |
安装编译工具
1 | (1) 安装GCC编译工具 |
Redis集群部署
编译安装redis【全节点部署】
1 | tar xzf redis-stable.tar.gz |
配置redis【全节点部署】
1 | mkdir /usr/local/redis/etc -p #创建配置文件目录 |
创建redis配置文件【每节点操作】
1 | 注:待会要创建redis集群,而配置文件不需要配置主从关系。所以每个节点配置基本一致。除了监听的IP和端口不同。 |
1 | cd /usr/local/redis/etc |
1 | ##是否以守护进程方式运行 |
启动服务【每节点操作】
1 | #分别启动服务 |
解决log错误
1 | 报错: |
解决方法(纯属翻译):
1 | echo "vm.overcommit_memory = 1" >>/etc/sysctl.conf |
重启服务【全节点】
1 | >/var/log/redis/redis.log |
Redis集群创建
安装ruby【所有节点】
1 | yum -y install ruby ruby-devel rubygems rpm-build |
创建集群【只在10.0.10.21上面创建即可】
1 | cd /root/redis-stable/src #进入源码目录 |
集群验证
1 | [root@localhost ~]# redis-cli -h 10.0.10.22 -p 7022 #登陆任意一台redis集群节点 |
横向扩容-向集群中添加节点
1 | 准备工作: |
1 | 向集群中添加节点 |
重新分配slots
1 | 新增加的主节点是没有slots的,所以需要重新分配,主节点如果没有slots的话,存取数据就都不会被选中。 |
1 | cd /usr/local/redis/redis-stable/src/ #切换到新拷贝的源码目录 |
1 | #你想移动多少个slots? |
查看集群情况
1 | ./redis-trib.rb check 10.0.10.24:7024 #后边输入任意节点即可 |
从集群中删除节点
删除从节点
1 | 格式:./redis-trib.rb del-node 从节点ip:port '从节点ID' |
1 | [root@localhost src]# ./redis-trib.rb del-node 10.0.10.24:7025 'a86c1a2d62fec9a51d6657a0b424730d820b8e65' |
删除主节点
1 | 如果主节点有slot,需要先去掉分配的slot,然后在删除主节点 |
删除其中一个master节点的slots (以删除10.0.0.24:7024主节点为例)
1 | ./redis-trib.rb check 10.0.10.24:7024 #查看24的slots数量,假如是6040 |
1 | #被删除master的所有slot数量 |
1 | 删除了主节点的master slots,这样就可以删除主节点了,这样就回到了没添加节点的状态 |
如果主节点有从节点,在删除主节点之前,需要改变从节点的master
1 | 以此为例 |
1 | 计划删除10.0.10.23:7023这个主节点,先改变10.0.10.23:7026的从节点 |
- 本文作者: GaryWu
- 本文链接: https://garywu520.github.io/2017/11/07/Redis-Cluster集群部署-实战1/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!