Redis 向集群添加新节点
步骤:
1. 启动集群服务(向集群添加新节点,则说明,集群是已知的)。
2. 搭建将要添加到集群的节点
(1)以集群的方式对新添加的节点进行配置:redis.conf.
(2)启动节点实例服务.
3.集群管理 可参考 Redis cluster tutorial 官网指导文档,往往是最新的。
一、启动集群服务:【命令在集群服务器执行】
(1) 启动集群服务(3个实例 6001 6002 6003)
/usr/local/redis/redis-5.0.8/src/redis-server /usr/local/redis-cluster/6001/redis.conf
/usr/local/redis/redis-5.0.8/src/redis-server /usr/local/redis-cluster/6002/redis.conf
/usr/local/redis/redis-5.0.8/src/redis-server /usr/local/redis-cluster/6003/redis.conf
(2) 客户端连接
/usr/local/redis/redis-5.0.8/src/redis-cli -c -h 192.168.11.10 -p 6001
192.168.11.10:6001> cluster nodes
ae87077a695cecc57f0196e47d561329ca725d4d 192.168.11.10:6003@16003 master - 0 1591414267000 3 connected 10923-16383
4f25757eec50e76d8b74d6cce25987f22be10063 192.168.11.10:6001@16001 myself,master - 0 1591414266000 1 connected 0-5460
228e33659b4323878b1174e211c46bfe2f5ca34a 192.168.11.10:6002@16002 master - 0 1591414268393 2 connected 5461-10922
结论:集群正常
二、搭建将要添加到集群的节点:
1. 待添加到集群的节点,文件结构
[root@localhost src]# cd /usr/local/redis-cluster/
[root@localhost redis-cluster]# ls
7001 7002 7003
[root@localhost redis-cluster]# cd 7001
[root@localhost 7001]# ls
redis.conf
2. 修改集群节点的配置文件 redis.conf
(1)daemonize no ——> daemonize yes
(2)port 6379 修改为对应节点目录的端口号(本次修改为7001 7002 7003)
(3)bind 127.0.0.1 ——> bind 当前机器的IP地址(本次为 192.168.11.11)
(4) dir 这一行 指定数据文件的存放路径。设置为各个节点下的目录。目录结构类似为"/usr/local/redis/redis-cluster/节点目录/" (本次为 dir /usr/local/redis/redis-cluster/7001/)
(5)启动集群模式。cluster-enabled ——> cluster-enabled yes
(6)设置集群的配置文件路径 。cluster-config-file nodes***.conf。***代表每个节点的目录对应的位置。本次修改为7001
(7)修改appendonly 为yes 。然后按照7001节点配置格式分别修改7002,7003这几个节点的配置文件
3.编译redis
在redis目录下,执行 make
[root@localhost ~]# cd /usr/local/redis/redis-6.0.3/
[root@localhost redis-6.0.3]# make
4. 发现 在 redis-6.0.3/src 下 多了不少文件 尤其增添了 redis-server (操作服务端)、redis-cli(操作客户端)
(1)启动服务【命令在待添加节点所在的服务器执行】:/usr/local/redis/redis-6.0.3/src/redis-server /usr/local/redis-cluster/7001/redis.conf
(2)添加节点到指定节点下,作为其(192.168.11.10:6001)slave节点【命令在集群服务器执行】:/usr/local/redis/redis-5.0.8/src/redis-cli --cluster add-node 192.168.11.11:7001 192.168.11.10:6001 --cluster-slave --cluster-master-id 4f25757eec50e76d8b74d6cce25987f22be10063
(3)查验【新添加的节点所在的服务器、也可以在集群服务器(注意路径)】:
[root@localhost src]# /usr/local/redis/redis-6.0.3/src/redis-cli -c -h 192.168.11.11 -p 7001
192.168.11.11:7001> cluster nodes
27a1958f412a5ea7edaa364ab0079af27310afdd 192.168.11.11:7001@17001 myself,slave 4f25757eec50e76d8b74d6cce25987f22be10063 0 1591416650000 0 connected
228e33659b4323878b1174e211c46bfe2f5ca34a 192.168.11.10:6002@16002 master - 0 1591416652000 2 connected 5461-10922
ae87077a695cecc57f0196e47d561329ca725d4d 192.168.11.10:6003@16003 master - 0 1591416652582 3 connected 10923-16383
4f25757eec50e76d8b74d6cce25987f22be10063 192.168.11.10:6001@16001 master - 0 1591416653587 1 connected 0-5460