关闭

  • 方式一:进入redis后,使用SHUTDOWN指令或SHUTDOWN SAVE指令或SHUTDOWN NOSAVE指令。
  • 方式二:通过redis的客户端程序redis-clishutdown命令
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 启动redis集群_Redis

 

 

 

重启

 

(保留原有集群的)重启:

  • 不需要再执行(形如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 dump-2-6379.rdb dump-2-6380.rdb
 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

注:节点配置文件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。

执行效果如图:

启动redis 启动redis集群_Redis_02

 

 注:如果此步时,最后提示[ERR] Not all 16384 slots are covered by nodes:

启动redis 启动redis集群_Redis_03

 

 那么就说明:有部分slot被占用了(因为之前的Redis集群中使用过了部分solt,所以我们“重置”集群时会受到影响),此时我们需要清理每个节点的solt,进入各节点的客户端:

# 进入客户端
src/redis-cli -c
# 密码认证
auth ds123
# 清理当前连接的节点下的所有slot
cluster flushslots

执行效果为:

启动redis 启动redis集群_redis_04

 

 再进行(删除原有集群的)重启即可。

 

集群相关指令:

查看集群相关指令:

# 进入redis客户端,输入
cluster help

查看集群状态信息:

# 进入redis客户端,输入
cluster info

查看集群节点信息:

# 进入redis客户端,输入
cluster nodes

启动redis 启动redis集群_redis_05