zoukankan      html  css  js  c++  java
  • Redis哨兵机制

    Redis Sentinel物理结构图

    角色 IP Port 别名
    master 127.0.01 6379 主节点
    slave-1 127.0.01 6380 slave-1节点
    slave-2 127.0.01 6381 slave-2节点
    sentinel-1 127.0.01 26379 sentinel-1节点
    sentinel-2 127.0.01 26380 sentinel-2节点
    sentinel-3 127.0.01 26381 sentinel-3节点

    1. 启动主节点

    配置:

    port 6379

    daemonize yes

    logfile “6379.log”

    dbfilename “dump-6379.rdb”

    dir “/opt/soft/redis/data/”

    启动主节点,并用一下命令验证主节点是否启动成功:

    redis-cli -h 127.0.0.1 -p 6379 ping

    此时的拓扑结构图如下:

    2. 启动两个从节点

    配置:

    和主节点一样,只是添加了一条:slaveof 127.0.0.1 6379

    启动两个从节点,并验证是否启动成功。

    3. 确认主从关系

    主节点视角,使用info命令查看

    从节点视角,使用info命令查看

    此时的拓扑结构图如下:

    4. 配置sentinel节点

    配置:

    port 26379

    daemonize yes

    dir /opt/soft/redis/data

    sentinel monitor mymaster 127.0.0.1 6379 2

    sentinel down-after-milliseconds mymaster 30000

    sentinel parallel-syncs mymaster 1

    sentinel failover-timeout mymaster 180000

      1). Sentinel节点的默认端口是26379。

      2). sentinel monitor mymaster 127.0.0.1 6379 2配置代表sentinel-1节点需要监控127.0.0.1:6379这个主节点,2代表判断主节点失败至少需要2个sentinel节点同意,mymaster是主节点的别名。

      3). 此处有一个坑需要注意,在配置monitor监控的时候,不要使用127.0.0.1这个IP地址,因为在使用其他语言客户端连接的时候,是连接的sentinel,然后获取redis服务的连接,如果配置127.0.0.1的话,是获取不到redis服务的真实地址的,所以这里尽量配置为redis节点的真实地址。

    5. 启动sentinel节点

    按照上述方法配置其余两个sentinel节点,然后分别启动

    redis-sentinel redis-sentinel-26379.conf

    6. 确认

    redis-cli -h 127.0.0.1 -p 26379 info sentinel

    7. 最后的拓扑结构图如下:

    8. 验证

  • 相关阅读:
    Sublime text 2 编辑器
    SWF文件版本支持映射表
    sql SET DATEFORMAT对日期处理的影响
    关于 getQualifiedDefinitionNames() 的使用场景
    prototypephotoarchive.cs
    jQuery easyui layout布局自适应浏览器大小
    iteratorfamilytree.cs
    内存利用率
    SET LANGUAGE对日期处理的影响示例
    mbox:Unix 的入门级邮箱
  • 原文地址:https://www.cnblogs.com/Oven5217/p/8974546.html
Copyright © 2011-2022 走看看