关闭
- 方式一:进入redis后,使用SHUTDOWN指令或SHUTDOWN SAVE指令或SHUTDOWN NOSAVE指令。
- 方式二:通过redis的客户端程序
redis-cli
的shutdown
命令
redis-cli -p 6380 shutdown
- 方式三(不推荐):谨慎使用直接kill -9 ${进程号}的方式。
# 查看redis进程 ps -ef|grep redis # kill掉进程 kill -9 2177 2217
启动
- 如果之前集群已经搭建好了,由于某些原因kill掉了所有节点,如果此时需要启动集群的话,只需要挨个启动各个Redis节点即可,集群自然就起来了。(注意:启动redis服务时请在上次成功启动服务的目录启动,即已经生成rdb,conf的目录,否则该节点加入不了集群)
相关指令(注意:redis-server命令已经用alias定义别名使用了):
redis-server /opt/redis-cluster-6379/redis.conf
执行效果如图:
重启
(保留原有集群的)重启:
- 不需要再执行(形如redis-cli -a ds123 --cluster create 10.8.109.24:6379 10.8.109.36:6379 10.8.109.49:6379 10.8.109.49:6380 10.8.109.24:6380 10.8.109.36:6380 --cluster-replicas 1这样的)集群生成指令。
- 第一步:先关闭各个Redis节点。
- 第二步:再启动各个Redis节点即可。(注意:启动redis服务时请在上次成功启动服务的目录启动,即已经生成rdb,conf的目录,否则该节点加入不了集群)
(删除原有集群的)重启:
- 需要再执行(形如redis-cli -a ds123 --cluster create 10.8.109.24:6379 10.8.109.36:6379 10.8.109.49:6379 10.8.109.49:6380 10.8.109.24:6380 10.8.109.36:6380 --cluster-replicas 1这样的)集群生成指令。
- 第一步:先关闭各个Redis节点。
- 第二步:删除各个Redis安装目录下的节点配置文件nodes.conf、数据文件dump.rdb。
说明:此方式相当于重置到刚刚创建集群的时候了,所以需要删除节点配置文件nodes.conf、还需要删除数据存储文件dump.rdb。
相关指令:
# 删除节点配置文件 rm nodes.conf dump.rdb
rm -f dump-1-6379.rdb dump-1-6380.rdb
rm -f nodes-1-6379.conf nodes-1-6380.conf
rm -f nodes-1-6379.conf nodes-1-6380.conf
rm -f dump-2-6379.rdb dump-2-6380.rdb
rm -f nodes-2-6379.conf nodes-2-6380.conf
rm -f nodes-2-6379.conf nodes-2-6380.conf
rm -f dump-2-6379.rdb dump-2-6380.rdb
rm -f nodes-3-6379.conf nodes-3-6380.conf
rm -f nodes-3-6379.conf nodes-3-6380.conf
注:节点配置文件nodes.conf、数据文件dump.rdb等可以在redis.conf文件中指定
- 第三步:再启动各个Redis节点。
- 第四步:(在集群中的任意一个节点)执行集群搭建指令。
src/redis-cli -a ds123 --cluster create 10.8.109.24:6379 10.8.109.36:6379 10.8.109.49:6379 10.8.109.49:6380 10.8.109.24:6380 10.8.109.36:6380 --cluster-replicas 1
注:因为我们开启了Redis密码认证,所以需要在这里-a ds123指明密码,其中ds123就是本人设置的密码。
注:--cluster-replicas 1中,1代表的是一个master有一个slave;前三个ip是master,后三个ip是对应的slave。
执行效果如图:
注:如果此步时,最后提示[ERR] Not all 16384 slots are covered by nodes:
那么就说明:有部分slot被占用了(因为之前的Redis集群中使用过了部分solt,所以我们“重置”集群时会受到影响),此时我们需要清理每个节点的solt,进入各节点的客户端:
# 进入客户端 src/redis-cli -c # 密码认证 auth ds123 # 清理当前连接的节点下的所有slot cluster flushslots
执行效果为:
再进行(删除原有集群的)重启即可。
集群相关指令:
查看集群相关指令:
# 进入redis客户端,输入
cluster help
查看集群状态信息:
# 进入redis客户端,输入 cluster info
查看集群节点信息:
# 进入redis客户端,输入
cluster nodes
参考文献:https://blog.csdn.net/justry_deng/article/details/89205155