Redis Sentinel 配置文件
基础参考:https://www.cnblogs.com/wang-li/p/9955303.html
配置文件讲解
1.sentinel monitor
# sentinel monitor <master-name> <ip> <redis-port> <quorum> sentinel 监视主服务器的信息,master-name:是主服务器名称 ip:是主服务器ip redis-port:是主服务器端口 quorum:主服务器失效需要多少个sentinel同意,如果同意的sentinel不达标,则不会进行redis 故障迁移 默认配置: sentinel monitor mymaster
2.sentinel down-after-milliseconds
# sentinel down-after-milliseconds <master-name> <milliseconds> SDOWN:如果服务器在给定的毫秒数之内,没有返回sentinel发送的PING命令的回复,或则返回一个错误,那么sentinel将这个服务器标记为主观下线(subjectively down,简称SDOWN) ODOWN:只有在数量足够多的sentinel都将一个服务器标记为主观下线后,服务器才会被标记为客观下线(objectively down),这时,自动故障迁移才会执行 默认配置: sentinel down-after-milliseconds mymaster
SDOWN log如下:
==> log-by-sentinel-.log <== :X Nov :: ==> log-by-sentinel-.log <== :X Nov :: ==> log-by-sentinel-.log <== :X Nov ::
通过上面的log,可以发现,此3个log都是主观下线SDOWN
2.1关于主观下线和客观下线
2.1.1主观下线:
是指单个sentinel实例对单个服务器做出SDOWN的判断
2.1.2客观下线:
是指多个sentinel实例对单个服务器做出的SDOWN判断,并且通过sentinel is-master-down-by-addr命令交流后,得出的服务器下线判断
ODOWN log如下:
==> log-by-sentinel-.log <== :X Nov :: #quorum / :X Nov :: :X Nov :: :X Nov ::
3.sentinel parallel-syncs
# sentinel parallel-syncs <master-name> <numslaves> 在执行故障转移时,可以同时有多少从服务器对新的主服务器进行数据同步,此值越小,同步时间越长,此值越大,同步时间越小,但是所耗费的网路资源也就越多 默认配置: sentinel parallel-syncs mymaster
4.sentinel auth-pass
# sentinel auth-pass <master-name> <password> 用于设置主库和从库的master-name 和密码,不过需要关注的点是,主库和从库应该设置为一致的,否则会有问题
5.sentinel notification-script
# sentinel notification-script <master-name> <script-path> 用于设置在进行故障转移后服务器发送的脚本 例如:自己写一个简单的python脚本,接收到的信息如下:

6.sentinel client-reconfig-script
# sentinel client-reconfig-script <master-name> <script-path> 用于设置在进行故障转移后客户端发送的脚本
关于redis sentinel的客户端
如果Redis sentinel在进行故障转移后,并没有将master的信息通知到客户端,那么故障转移将毫无意义
Python来实现
代码如下
# cat redis_sentinel_client.py
#!/usr/bin/env python3
import redis
import redis.sentinel
sentinel_list = redis.sentinel.Sentinel([
(),
(),
(),
])
#获取主服务器信息
get_master_info = sentinel_list.discover_master('mymaster')
print (get_master_info)
#获取从服务器信息
get_slave_info = sentinel_list.discover_slaves('mymaster')
print (get_slave_info)
#主服务器进行写入
write_redis_master = sentinel_list.master_for()
print ("主库端口: %s" %(write_redis_master.info()['tcp_port']))
','test123'):
#从服务器进行读取
read_redis_slaves = sentinel_list.slave_for()
print ("从库端口:%s" %(read_redis_slaves.info()['tcp_port']))
print (read_redis_slaves.get('))
#
执行结果如下
# ./redis_sentinel_client.py () [(), ()] 主库端口: 从库端口: b'test123' # ./redis_sentinel_client.py () [(), ()] 主库端口: 从库端口: b'test123' #
Redis Sentinel 配置文件的更多相关文章
- Redis Sentinel集群配置中的一些细节
今天在配置Redis集群,用作Tomcat集群的缓存共享.关于Redis集群的配置网上有很多文章,这里只是记录一下我在配置过程中遇到的一些小的细节问题. 1. 关于Protected Mode的问题 ...
- Redis Sentinel 高可用实现说明
背景: 前面介绍了Redis 复制.Sentinel的搭建和原理说明,通过这篇文章大致能了解Sentinel的原理和实现方法以及相关的搭建.这篇文章就针对Redis Sentinel的搭建做 ...
- Redis Sentinel机制与用法说明【转】
本文来自:https://segmentfault.com/a/1190000002680804 概述 Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Ma ...
- Redis -- 02 配置文件解析
redis的配置文件为 redis.conf, 使用 ./redis-server /path/to/redis.conf 可以根据自定义的配置启动redis实例 include // 引入其他配置文 ...
- Redis Sentinel:集群Failover解决方案(转载)
本文转载自:http://shift-alt-ctrl.iteye.com/blog/1884370 文中的配置例子,还有failover过程中触发的订阅事件具有很好的参考价值. Redis sent ...
- Redis Sentinel机制与用法(一)
Sentinel spring 集群配置: 概述 Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕 ...
- Redis Sentinel高可用架构
Redis目前高可用的架构非常多,比如keepalived+redis,redis cluster,twemproxy,codis,这些架构各有优劣,今天暂且不说这些架构,今天主要说说redis se ...
- redis高可用之REDIS SENTINEL
1. Redis主从配置 1.1. 设置主从复制 Master <= Salve 10.24.6.5:6379 <= 10.24.6.7:6379 1.2. 取消主从复制 1.3. ...
- Redis Sentinel哨兵集群
Redis Sentinel(哨兵集群)是一种高可用的redis部署方案.在集群中的redis-master服务挂掉时,无需人为干预,即可通过哨兵集群的自我调整,实现redis服务的持续可用. 哨兵集 ...
随机推荐
- 《CSAPP》读书笔记
第一章 第二章 第三章 第四章 第五章 第六章 第七章 链接 可重定位目标文件 符号和符号表 符号解析 第八章 第九章 虚拟存储器 虚拟存储器 页表.页命中.缺页 地址翻译 第十章 第十一章 第十二章 ...
- 如何自动生成图片用于测试 pytorch(No image? No need image)
if __name__ == '__main__': module = CAM_Module() in_data = torch.randint(0, 255, (2, 3, 7, 7), dtype ...
- 算法练习LeetCode初级算法之其他
位1的个数 解法一: class Solution { // you need to treat n as an unsigned value public int hammingWeight(int ...
- Solidity知识点集 — 溢出和下溢
合约安全增强: 溢出和下溢 什么是 溢出 (overflow)? 假设我们有一个 uint8, 只能存储8 bit数据.这意味着我们能存储的最大数字就是二进制 11111111 (或者说十进制的 2^ ...
- 主机WiFi时,vmware ubuntu 桥接上网
1.在vmwared软件主页的编辑->虚拟网络编辑器中,桥接模式,选择桥接至电脑的无线网卡(在主机上查询) 2.虚拟机设置中,选择桥接模式 3.ubuntu 桌面右上方edit connecti ...
- node 常用模块及方法fs,url,http,path
http://www.cnblogs.com/mangoxin/p/5664615.html https://www.liaoxuefeng.com/wiki/001434446689867b2715 ...
- Intellij Idea15 快捷键设置大全
一:菜单快捷键 快捷键 设置Bar快捷键,参考文章 进入(Enter Full Screen) Alt+S /(Status Bar) Alt+T /(Toolbar) Alt+B ...
- break 和continue在循环中起到的作用
break语句的作用是终止当前循环,跳出循环体.主意,break只能跳出一层循环. continue语句的作用是终止本轮循环并开始下一轮循环,(这里要主意的是在开始下一轮循环之前,会先测试循环条件). ...
- log4j 配置日志输出(log4j.properties)
轉: https://blog.csdn.net/qq_29166327/article/details/80467593 一.入门log4j实例 1.1 下载解压log4j.jar(地址:http: ...
- hbase-写操作
hbase连接过程 hbase client在写入的数据的过程中,是直接和rs进行通信的,整个的数据写入流程并不涉及到HMaster.那么client是如何找到对应的rs呢?流程如下: client从 ...