Redis cluster集群部署节点的扩充与删减

本次采用一台主机同时开6个实例的方式部署redis集群功能。

1、安装redis

#安装
tar xf redis-5.0.5.tar.gz
cd redis-5.0.5
make
make PREFIX=/usr/local/redis
#执行6次安装脚本初始6个实例
utils/install_server.sh Redis cluster集群部署节点的扩充与删减
#修改6个实例配置文件,开启集群功能
vim redis/7000/7000.conf
#修改以下内容:
cluster-enabled yes #开启集群功能
cluster-config-file nodes-7000.conf #指定集群配置文件
cluster-node-timeout 5000 #节点超时时间
appendonly yes #开启AOF功能
注:
多台主机部署还需要修改绑定bind为本机地址。
Redis cluster集群部署节点的扩充与删减
Redis cluster集群部署节点的扩充与删减
Redis cluster集群部署节点的扩充与删减
#重启6个实例redis服务
/etc/init.d/redis_7000 restart
/etc/init.d/redis_7001 restart
/etc/init.d/redis_7002 restart
/etc/init.d/redis_7003 restart
/etc/init.d/redis_7004 restart
/etc/init.d/redis_7005 restart
Redis cluster集群部署节点的扩充与删减

2、创建集群

redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 --cluster-replicas 1
–cluster-replicas 1 表示为集群中的每个主节点创建一个从节点。
Redis cluster集群部署节点的扩充与删减
#查看集群状态
redis-cli -p 7000 cluster info
Redis cluster集群部署节点的扩充与删减
#停止掉7001服务,7003自动顶替
redis-cli --cluster check 127.0.0.1:7000
/etc/init.d/redis_7001 stop
redis-cli --cluster check 127.0.0.1:7000
Redis cluster集群部署节点的扩充与删减
#再次启动7001,自动加入成为7003从库
/etc/init.d/redis_7001 start
redis-cli -p 7000 --cluster check 127.0.0.1:7000
Redis cluster集群部署节点的扩充与删减

3、 添加节点

步骤:添加节点—分配哈希槽
安装参考以上面安装步骤
#修改配置文件开启集群功能
vim redis/7006/7006.conf
cluster-enabled yes #开启集群功能
cluster-config-file nodes-7000.conf #指定集群配置文件
cluster-node-timeout 5000 #节点超时时间
appendonly yes #开启AOF功能
Redis cluster集群部署节点的扩充与删减
Redis cluster集群部署节点的扩充与删减
#重启7006服务
/etc/init.d/redis_7006 restart
#加入集群
redis-cli --cluster add-node 127.0.0.1:7006 127.0.0.1:7000
#查看状态
redis-cli --cluster check 127.0.0.1:7000
Redis cluster集群部署节点的扩充与删减
#分配哈希槽(没有哈希槽数据无法存到此主机上)
redis-cli --cluster reshard 127.0.0.1:7000
#根据提示输入哈希槽个数,需要分配主机的ID号,从指定主机分配,还是全部主机分配。
Redis cluster集群部署节点的扩充与删减
Redis cluster集群部署节点的扩充与删减
#查看集群状态7006主机已添加并分配好了哈希槽
redis-cli --cluster reshard 127.0.0.1:7000
Redis cluster集群部署节点的扩充与删减

4、 移除节点

步骤:移除哈希槽—移除节点
#移除哈希槽
redis-cli --cluster reshard 127.0.0.1:7000
#根据提示输入哈希槽个数----随便一个mastet ID-----输入需要移除主机的ID号----输入done完成。
Redis cluster集群部署节点的扩充与删减
#查看集群状态哈希槽已被移除
redis-cli -p 7000 --cluster check 127.0.0.1:7000
Redis cluster集群部署节点的扩充与删减
#移除节点
redis-cli --cluster del-node 127.0.0.1:7000 fb61c27c85685c6ba76aa22a0d8948fa45486cf0
#查看集群状态7006已被移除
redis-cli -p 7000 --cluster check 127.0.0.1:7000
Redis cluster集群部署节点的扩充与删减
#均衡哈希槽(觉得哈希槽不平均可以执行此步)
redis-cli --cluster rebalance 127.0.0.1:7000
redis-cli -p 7000 --cluster check 127.0.0.1:7000
Redis cluster集群部署节点的扩充与删减