• Redis 哨兵模式配置


    搭建步骤

    第一步: 在 redis.conf 配置文件目录下拷贝三份 sentinel.conf 文件
    [root@node-01 redis-5.0.9]# cp sentinel.conf sentinel.conf1
    [root@node-01 redis-5.0.9]# cp sentinel.conf sentinel.conf2
    [root@node-01 redis-5.0.9]# cp sentinel.conf sentinel.conf3
    
    第二步:在 sentinel.conf1 文件中查看配置
    • 配置格式:sentinel monitor 被监控机器名 IP地址 端口号 得票数

      Vim 打开 sentinel.conf1 文件,修改如下配置项:

    port 26379 # 哨兵监控端口(sentinel.conf1)
    daemonize yes # 后台运行
    sentinel monitor mymaster 127.0.0.1 6379 2 # 表示只要有2个哨兵节点认为主服务器有问题则进入客观下载状态
    
    • 然后修改 sentinel.conf2 的监控端口为 26380
    port 26380 # 哨兵监控端口(sentinel.conf2)
    daemonize yes # 后台运行
    sentinel monitor mymaster 127.0.0.1 6379 2 # 表示只要有2个哨兵节点认为主服务器有问题则进入客观下载状态
    
    • 然后修改 sentinel.conf3 的监控端口为 26381
    port 26381 # 哨兵监控端口(sentinel.conf3)
    daemonize yes # 后台运行
    sentinel monitor mymaster 127.0.0.1 6379 2 # 表示只要有2个哨兵节点认为主服务器有问题则进入客观下载状态
    
    第三步:启动哨兵模式
    • cd 进入 Redis 的 src 目录,然后分别执行启动 3 个哨兵模式脚本,如下:
    [root@node-01 redis-5.0.9]# src/redis-sentinel sentinel.conf1
    [root@node-01 redis-5.0.9]# src/redis-sentinel sentinel.conf2
    [root@node-01 redis-5.0.9]# src/redis-sentinel sentinel.conf3
    
    第四步:查看 3 个哨兵模式进程,确定是否启动成功
    [root@node-01 redis-5.0.9]# ps -ef | grep sentinel
    root       1824      1  0 12:34 ?        00:00:00 src/redis-sentinel *:26379 [sentinel]
    root       1829      1  0 12:34 ?        00:00:00 src/redis-sentinel *:26380 [sentinel]
    root       1834      1  0 12:34 ?        00:00:00 src/redis-sentinel *:26381 [sentinel]
    root       1841   1495  0 12:35 pts/0    00:00:00 grep --color=auto sentinel
    

    说明三个哨兵进程已成功启动

    第五步:检测哨兵模式
    • 直接关闭端口为 6379 的 Master 主服务器,以模拟主服务器故障,如下:
    127.0.0.1:6379> shutdown
    not connected> 
    
    • 查看端口号 6380 服务器的主从关系
    [root@node-01 redis-5.0.9]# src/redis-cli -p 6380
    127.0.0.1:6380> info replication
    # Replication
    role:slave # 表示该服务器是一个从服务器
    master_host:127.0.0.1 # 表示连接的主服务器 IP 地址
    master_port:6381 # 表示连接的主服务器端口号
    master_link_status:up
    master_last_io_seconds_ago:0
    master_sync_in_progress:0
    slave_repl_offset:29805
    slave_priority:100
    slave_read_only:1
    connected_slaves:0
    master_replid:ab744fc6feb39f575ec3958f288a52ec7dd034db
    master_replid2:554339e6ceb0172e1a8be239d5f84edfa7c39455
    master_repl_offset:29805
    second_repl_offset:28586
    repl_backlog_active:1
    repl_backlog_size:1048576
    repl_backlog_first_byte_offset:1
    repl_backlog_histlen:29805
    

    查看结果为端口 6380 的服务器仍然是从服务器,但是它连接的主服务器不再是端口 6379 的服务器了,而变为了 端口为6381 的服务器。

    • 查看端口号 6381 服务器的主从关系
    [root@node-01 redis-5.0.9]# src/redis-cli -p 6381
    127.0.0.1:6381> info replication
    # Replication
    role:master # 表示该服务器为主服务器
    connected_slaves:1 #表示该服务器拥有1个从服务器连接
    # 从服务器列表信息
    slave0:ip=127.0.0.1,port=6380,state=online,offset=70265,lag=1
    master_replid:ab744fc6feb39f575ec3958f288a52ec7dd034db
    master_replid2:554339e6ceb0172e1a8be239d5f84edfa7c39455
    master_repl_offset:70398
    second_repl_offset:28586
    repl_backlog_active:1
    repl_backlog_size:1048576
    repl_backlog_first_byte_offset:85
    repl_backlog_histlen:70314
    

    查看结果为端口 6381 的服务器已经由原来的从服务器(Slave),切换为主服务器(Master),而且连接在原来主服务器的端口 6380 的从服务器,也重新连接到新的主服务器上了。

    • 重新启动端口 6380 的前任主服务器
    [root@node-01 redis-5.0.9]# src/redis-cli -p 6379
    127.0.0.1:6379> info replication
    # Replication
    role:slave # 表示该服务器为从服务器
    master_host:127.0.0.1 # 表示连接的主服务器IP地址
    master_port:6381#表示连接的主服务器端口号
    master_link_status:up
    master_last_io_seconds_ago:1
    master_sync_in_progress:0
    slave_repl_offset:131755
    slave_priority:100
    slave_read_only:1
    connected_slaves:0
    master_replid:ab744fc6feb39f575ec3958f288a52ec7dd034db
    master_replid2:0000000000000000000000000000000000000000
    master_repl_offset:131755
    second_repl_offset:-1
    repl_backlog_active:1
    repl_backlog_size:1048576
    repl_backlog_first_byte_offset:129724
    repl_backlog_histlen:2032
    

    查看结果为重启服务器后,原来的端口 6379 的主服务器已经不再是主服务器,而自动变为端口6381 的新主服务器的从服务器了。

    至此,哨兵模式环境搭建和测试成功:)

    作者:Binge
    本文版权归作者和博客园共有,转载必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
  • 相关阅读:
    harass
    matlab的legend()用法
    migrate
    大千敦煌面壁
    三维插值(MATLAB)——TriScatteredInterp/scatteredInterpolant函数
    有哪些不出名的诗人写的千古名句?
    听吴翰清讲课笔记
    移动着,心就变了
    人活着为了什么?
    人生就是一场修炼
  • 原文地址:https://www.cnblogs.com/binbingg/p/14543516.html
Copyright © 2020-2023  润新知