• 启动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

  • 相关阅读:
    第一次使用博客,有点小激动
    oracle中的分区表基本介绍
    【转】Apache Common HttpClient使用之七种武器
    利用Iterator删除List里相近或相同的对象
    [转]给开发维护大型项目的Java开发者的建议
    JavaScript中String对象的一些方法
    [转] ORA00913: 值过多
    [转]HTTP协议详解
    DOM解析xml
    C# 中的 == 和 .Equals()
  • 原文地址:https://www.cnblogs.com/zhaoshaopeng/p/13495989.html
Copyright © 2020-2023  润新知