Redis Sentinel实现Failover

Redis Sentinel实现Failover

redis版本:2.8.17
 
服务器规划:
10.50.13.34(6379 master)
10.50.13.35(6379 slave)
10.50.13.36(6379 slave)
10.50.13.37(6379 slave)
 
一、安装redis
tar zxf redis-2.8.17.tar.gz
cd redis-2.8.17
make
make install
mv redis-2.8.17 /app/sinova/redis
cd /app/sinova/redis
mkdir bin conf rdb log
mv redis.conf sentinel.conf conf
find -maxdepth 1 -type f -delete
cd src
mv mkreleasehdr.sh redis-benchmark redis-sentinel redis-server redis-cli redis-check-aof redis-check-dump ../bin/
 
二、配置redis
redis.conf配置文件修改如下内容:
master配置:
daemonize yes
pidfile /app/sinova/redis/redis.pid 
logfile  /app/sinova/redis/log/redis.log
dir /app/sinova/redis/rdb

slave配置:

daemonize yes
pidfile /app/sinova/redis/redis.pid 
logfile  /app/sinova/redis/log/redis.log
dir /app/sinova/redis/rdb
slaveof 10.50.13.34 6379

 
三、配置sentinel

daemonize yes
logfile “/app/sinova/redis/log/sentinel.log”
 
sentinel monitor mymaster 10.50.13.34 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel failover-timeout mymaster 60000
sentinel parallel-syncs mymaster 1
 
四、启动redis
先启动master,然后再启动slave,命令相同,如下:
/app/sinova/redis/bin/redis-server /app/sinova/redis/conf/redis.conf
 
启动后查看主从状态:
 redis-cli info Replication

# Replication

role:master

connected_slaves:3


slave0:ip=10.50.13.35,port=6379,state=online,offset=29,lag=0
slave1:ip=10.50.13.36,port=6379,state=online,offset=29,lag=0
slave2:ip=10.50.13.37,port=6379,state=online,offset=29,lag=0


master_repl_offset:29

repl_backlog_active:1

repl_backlog_size:1048576

repl_backlog_first_byte_offset:2

repl_backlog_histlen:28
 
五、启动sentinel
先启动master,然后再启动slave,命令相同,如下:
/app/sinova/redis/bin/redis-sentinel /app/sinova/redis/conf/sentinel.conf
 
在master上查看/app/sinova/redis/log/sentinel.log   #slave下也有此日志,可以看到内容有变化
$ cat sentinel.log

                _._                                                  

           _.-“__ ”-._                                             

      _.-“    `.  `_.  ”-._           Redis 2.8.17 (00000000/0) 64 bit

  .-“ .-“`.  “`\/    _.,_ ”-._                                   

 (    ‘      ,       .-`  | `,    )     Running in sentinel mode

 |`-._`-…-` __…-.“-._|’` _.-‘|     Port: 26379

 |    `-._   `._    /     _.-‘    |     PID: 16995

  `-._    `-._  `-./  _.-‘    _.-‘                                   

 |`-._`-._    `-.__.-‘    _.-‘_.-‘|                                  

 |    `-._`-._        _.-‘_.-‘    |           
http://redis.io        

  `-._    `-._`-.__.-‘_.-‘    _.-‘                                   

 |`-._`-._    `-.__.-‘    _.-‘_.-‘|                                  

 |    `-._`-._        _.-‘_.-‘    |                                  

  `-._    `-._`-.__.-‘_.-‘    _.-‘                                   

      `-._    `-.__.-‘    _.-‘                                       

          `-._        _.-‘                                           

              `-.__.-‘                                               

[16995] 15 Sep 15:30:11.226 # Sentinel runid is cac946f212073a0e7c353e058dc7c83c9c62a161

[16995] 15 Sep 15:30:11.226 # +monitor master mymaster 10.50.13.34 6379 quorum 2

[16995] 15 Sep 15:30:11.228 * +slave slave 10.50.13.35:6379 10.50.13.35 6379 @ mymaster 10.50.13.34 6379

[16995] 15 Sep 15:30:11.228 * +slave slave 10.50.13.36:6379 10.50.13.36 6379 @ mymaster 10.50.13.34 6379

[16995] 15 Sep 15:30:11.228 * +slave slave 10.50.13.37:6379 10.50.13.37 6379 @ mymaster 10.50.13.34 6379

[16995] 15 Sep 15:30:13.264 * +sentinel sentinel 10.50.13.35:26379 10.50.13.35 26379 @ mymaster 10.50.13.34 6379

[16995] 15 Sep 15:30:13.306 * +sentinel sentinel 10.50.13.37:26379 10.50.13.37 26379 @ mymaster 10.50.13.34 6379

[16995] 15 Sep 15:30:13.312 * +sentinel sentinel 10.50.13.36:26379 10.50.13.36 26379 @ mymaster 10.50.13.34 6379

 
 
六、测试
停掉master上的redis
$ redis-cli shutdown
 
查看日志:
[16995] 15 Sep 15:33:54.131 # +sdown master mymaster 10.50.13.34 6379
[16995] 15 Sep 15:33:54.139 # +new-epoch 1
[16995] 15 Sep 15:33:54.145 # +vote-for-leader c6e609a1978e5cdb68ead8983ba88568aa85180d 1
[16995] 15 Sep 15:33:54.215 # +odown master mymaster 10.50.13.34 6379 #quorum 4/2
[16995] 15 Sep 15:33:54.215 # Next failover delay: I will not start a failover before Tue Sep 15 15:35:54 2015
[16995] 15 Sep 15:33:55.339 # +config-update-from sentinel 10.50.13.36:26379 10.50.13.36 26379 @ mymaster 10.50.13.34 6379
[16995] 15 Sep 15:33:55.339 # +switch-master mymaster 10.50.13.34 6379 10.50.13.36 6379
[16995] 15 Sep 15:33:55.339 * +slave slave 10.50.13.37:6379 10.50.13.37 6379 @ mymaster 10.50.13.36 6379
[16995] 15 Sep 15:33:55.344 * +slave slave 10.50.13.35:6379 10.50.13.35 6379 @ mymaster 10.50.13.36 6379
[16995] 15 Sep 15:33:55.350 * +slave slave 10.50.13.34:6379 10.50.13.34 6379 @ mymaster 10.50.13.36 6379
 
可以看到新的master为10.50.13.36

Redis Sentinel实现Failover
 
原来的master恢复后,会加入slave的行列:
查看sentinel.log:
[16995] 15 Sep 15:40:33.897 # -sdown slave 10.50.13.34:6379 10.50.13.34 6379 @ mymaster 10.50.13.36 6379
 
Redis Sentinel实现Failover
 
Sentinel在实现Failover过程中,会自动修改redis.conf和sentinel.conf的配置。

转载于:https://www.cnblogs.com/Eivll0m/p/4810507.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109330.html原文链接:https://javaforall.net

(0)
上一篇 2021年9月9日 上午7:00
下一篇 2021年9月9日 上午8:00


相关推荐

  • C语言合法标识符,合法常量,合法转义字符总结!

    C语言合法标识符,合法常量,合法转义字符总结!一 合法标识符用户定义的合法标识符需满足以下两个要求 标识符只能由字母 数字和下划线组成 标识符不能以数字开头 二 合法常量整型常量 十进制 10 八进制 017 以 0 开头 不能出现 8 9 十六进制 0xA1 以 0x 开头 实型常量 强调 E E 的前面必须有数字 E 的后面必须是整数字符型 n N n 字符串型 abc 123 三 合法转义字符一般转义字符 a 响铃 b 退格 f

    2026年3月17日
    2
  • 用perl获取可用的代理服务器地址

    用perl获取可用的代理服务器地址

    2021年8月12日
    59
  • WinRAR去除广告,亲测可用

    WinRAR去除广告,亲测可用原文地址:最新去除中文winrar压缩软件弹出广告方法-百度经验(baidu.com) 此文用作备用文,在原文看不到的情况下,参考本文。感谢原文作者!!! 安装RAR简体中文版 下载并安装Restorator2007 找到RAR安装文件夹,可以双击打开RAR.exe看是否弹出广告 打开Restorator2007 选着左上角“文件-打开”,在“C:\ProgramFiles\WinRAR”文件夹中打开“WinRAR.exe” 打开后.

    2022年6月3日
    43
  • vdbench安装及使用[通俗易懂]

    vdbench安装及使用[通俗易懂]一、 vdbench简介vdbench是一个I/O工作负载生成器,用于验证数据完整性和度量直接附加和网络连接的存储的性能。它是一个免费的工具,容易使用,而且常常用于测试和基准测试。可以使用vdbench测试磁盘和文件系统的读写性能。注:此软件的带宽及字节结算单位均为1024进制。二、 vdbench安装环境准备Vdbench使用需要有java环境,centos直接yuminstalljre即可,windows主机上则需要安装jre,并添加到环境变量中。程序测试环境配置好后,直接在

    2022年5月19日
    116
  • ora 01017问题解决办法

    ora 01017问题解决办法SQL>startup ORACLEinstancestarted. TotalSystemGlobalArea 914358272bytes FixedSize                 2088184bytes VariableSize            528483080bytes DatabaseBuffers         3774873…

    2022年6月1日
    45
  • libcurl 教程

    libcurl 教程感谢原作者的辛勤劳作 https blog csdn net JGood article details 目标 nbsp nbsp nbsp 本文档介绍了在应用程序开发过程中 如何正确使用 libcurl 的基本方式和指导原则 文档使用 C 语言来调用 libcurl 的接口 当然也适用于其他与 C 语言接近的语言 nbsp nbsp nbsp 文档主要针对使用 libcurl 来进行开发的人员 文档所掼的应用程序泛指你写的源代

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号