启动Redis Cluster

 

  • Redis版本5.0.5
  • 由于Cluster自带Sentinel的故障转移机制,所以不再需要开启Sentinel
  • Shane这里设定6380 6381 6382
  • 两台云服务器三主三从,一台全放主一台全放从
  • 一共6个配置文件

配置Redis.conf

  • 复制一份原版的redis.conf
  • 对原版配置文件的以下内容进行修改,其他不管
# bind 127.0.0.1
protected-mode no
# 其他配置文件端口写对应即可(6380 6381 6382)
port 6380
# 进程守护开启(后台运行)
daemonize yes
# pidfile、logfile、dir可以选一个自己喜欢的位置放(不解释都是啥了,见名知意)
pidfile "/www/server/redis/redis-6380.pid"
logfile "/usr/local/redis/redis-6380.log"
dir "/usr/local/redis/data"
# 注意:Cluster模式下不可和主从复制同时开启(5版本为replicaof 3版本为slaveof,将其保持为注释状态)
# 配置密码
masterauth "passadmin"
requirepass "passadmin"
# aof和rdb两种持久化可同时存在(那就都开启吧)
appendonly yes
# Cluster配置
cluster-enabled yes
cluster-config-file nodes-6380.conf
cluster-node-timeout 15000

开放端口

  • 配置完成后,需要开放端口
  • 在主节点的端口号上+10000
  • 16380 16381 16382

启动节点

  • 将全部节点(6个节点)启动
# cd进配置文件所在地
redis-server redis-6380.conf

三主分配SLOT

  • 指定主节点都是谁
# *为指定的主节点IP,数字0是主从比例(因为没有指定从所以为0),-a后面写设定的密码
redis-cli --cluster create *.*.*.*:6380 *.*.*.*:6381 *.*.*.*:6382 --cluster-replicas 0 -a passadmin

为三个主节点分配slot

  • 输入yes并回车
    分配完毕
  • 从上图还能看到各个主节点的ID,可以先记录下来(后面也需要用到)
  • 没记录下来,也可以去日志中查看

添加从节点

  • 三个主节点弄完之后,可以为每个主节点,添加从节点了
# 第一个IP地址为从节点地址,第二个IP为主节点IP(从节点要从属的主节点)
# 一大串乱七八糟的是主节点的ID(不知道可以从日志中查看)
# -a 为密码(没有去掉就行)
redis-cli --cluster add-node *.*.*.*:6380 *.*.*.*:6380 --cluster-slave --cluster-master-id e937d5721a6a9344db670754329e5c23a3b31006 -a passadmin

添加成功

  • 如图则添加成功,如果卡在Waiting for the cluster to join…然后一直出点点点,则为端口没开放,需开放端口

测试

  • 随便进一个cli
# -c为集群的意思
redis-cli -c -p 6380
# 输入密码
auth passadmin
  • 输入cluster nodes命令
cluster nodes

配置成功

  • 输入set shane 666 或者set redis 666,会发现有的情况下会redirect到Cluster分配的slot的主节点去
set shane 666
set redis 666

出现redirect

故障转移测试

  • 手动shutdown一个主节点
    shutdown
  • 此时查看日志
    日志
  • 从日志中可以看到已经成功将从节点提升为主节点(和Sentinel功能一致)
  • 再去cli中输入cluster nodes看看
    节点信息
  • 从图中可以看出方块是原来的主节点,椭圆为原来的从节点,现在提升为了主节点

至此Cluster启动完毕

转载:https://blog.csdn.net/qq_44419912/article/details/105803592

原文地址:https://www.cnblogs.com/zhaoshaopeng/p/13495989.html