ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

redis哨兵机制

2020-09-11 09:32:29  阅读:240  来源: 互联网

标签:mymaster 127.0 Aug 0.1 redis 哨兵 27 服务器 机制


1、哨兵机制介绍

  redis哨兵是redis高可用的解决方案,有一个或多个哨兵实例组成哨兵系统,可以监听多个主服务器以及对应的从服务器,当主服务器下线时长超过上限时,自动将下线主服务器下的某个从服务器升级为新的主服务器(故障转移)。

  故障转移操作:

    选择其中一个从服务器,并将其升级为新的主服务器,然后对所有从服务器发送新的复制指令,让他们成为新的主服务器的从服务器,当所有服务器都开始复制新的主服务器时,故障转移操作执行完毕。另外,之前下线的主服务器重新上线时将会把它设置为新的主服务器的从服务器。

2、启动哨兵(redis数据库带密码时的配置)

 redis-server.exe sentinel26379.conf --sentinel

其中 sentinel26379.conf文件:(另外建 sentinel26479.conf, sentinel26579.conf ,文件内容的port改为对应的端口号)

#当前Sentinel服务运行的端口
port 26379
# 哨兵监听的主服务器
daemonize yes
protected-mode no
# 3s内mymaster无响应,则认为mymaster宕机了
sentinel monitor mymaster 127.0.0.1 6379 1
sentinel auth-pass mymaster root123456
#如果10秒后,mysater仍没启动过来,则启动failover
sentinel down-after-milliseconds mymaster 5000
# 执行故障转移时, 最多有1个从服务器同时对新的主服务器进行同步
sentinel failover-timeout mymaster 5000
logfile "redis26379.log"

 

 测试哨兵机制:

  把主服务器宕机,查看从哨兵日志:

[38372] 27 Aug 19:52:31.310 # Sentinel ID is 7c13f2d6477794c862e530ab821ccf2ef9db8c60
[38372] 27 Aug 19:52:31.310 # +monitor master mymaster 127.0.0.1 6379 quorum 1
[38372] 27 Aug 19:52:31.311 * +slave slave 127.0.0.1:12345 127.0.0.1 12345 @ mymaster 127.0.0.1 6379
[38372] 27 Aug 19:52:31.313 * +slave slave 127.0.0.1:12344 127.0.0.1 12344 @ mymaster 127.0.0.1 6379
[38372] 27 Aug 19:52:33.080 * +sentinel sentinel d4fd32abe10ad70370f8bad4290598f182fc309a 127.0.0.1 26379 @ mymaster 127.0.0.1 6379
[38372] 27 Aug 19:52:34.953 * +sentinel sentinel ad77f98f68e3ebafd98df7fcf2d833afa4206683 127.0.0.1 26579 @ mymaster 127.0.0.1 6379
[38372] 27 Aug 20:07:02.503 # +new-epoch 1
[38372] 27 Aug 20:07:02.505 # +vote-for-leader d4fd32abe10ad70370f8bad4290598f182fc309a 1
[38372] 27 Aug 20:07:02.524 # +sdown master mymaster 127.0.0.1 6379
[38372] 27 Aug 20:07:02.524 # +odown master mymaster 127.0.0.1 6379 #quorum 1/1
[38372] 27 Aug 20:07:02.524 # Next failover delay: I will not start a failover before Thu Aug 27 20:07:13 2020
[38372] 27 Aug 20:07:03.282 # +config-update-from sentinel d4fd32abe10ad70370f8bad4290598f182fc309a 127.0.0.1 26379 @ mymaster 127.0.0.1 6379
[38372] 27 Aug 20:07:03.282 # +switch-master mymaster 127.0.0.1 6379 127.0.0.1 12344
[38372] 27 Aug 20:07:03.282 * +slave slave 127.0.0.1:12345 127.0.0.1 12345 @ mymaster 127.0.0.1 12344
[38372] 27 Aug 20:07:03.282 * +slave slave 127.0.0.1:6379 127.0.0.1 6379 @ mymaster 127.0.0.1 12344
[38372] 27 Aug 20:07:08.337 # +sdown slave 127.0.0.1:6379 127.0.0.1 6379 @ mymaster 127.0.0.1 12344

  查看服务器状态:

  

  再把主服务器开启,再次查看刚刚被选举为master的服务器的信息: 

       

 

3、哨兵启动过程:

  初始化服务器(用sentinel专用代码),初始化sentinel状态和监视主服务器列表,创建连向主服务器的网络连接。

  创建主服务器的网络连接:

    sentinel将成为主服务器的客户端,可以向主服务器发送命令,并从命令回复中获取相关信息。sentinel会创建两个连向主服务器的异步网络连接,一个是命令连接,一个是订阅连接(专门用于订阅主服务器的__sentinel__:hello 频道)

 

标签:mymaster,127.0,Aug,0.1,redis,哨兵,27,服务器,机制
来源: https://www.cnblogs.com/yaohuiqin/p/13572535.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有