基础参考: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 配置文件的更多相关文章

  1. Redis Sentinel集群配置中的一些细节

    今天在配置Redis集群,用作Tomcat集群的缓存共享.关于Redis集群的配置网上有很多文章,这里只是记录一下我在配置过程中遇到的一些小的细节问题. 1. 关于Protected Mode的问题 ...

  2. Redis Sentinel 高可用实现说明

    背景:      前面介绍了Redis 复制.Sentinel的搭建和原理说明,通过这篇文章大致能了解Sentinel的原理和实现方法以及相关的搭建.这篇文章就针对Redis Sentinel的搭建做 ...

  3. Redis Sentinel机制与用法说明【转】

    本文来自:https://segmentfault.com/a/1190000002680804 概述 Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Ma ...

  4. Redis -- 02 配置文件解析

    redis的配置文件为 redis.conf, 使用 ./redis-server /path/to/redis.conf 可以根据自定义的配置启动redis实例 include // 引入其他配置文 ...

  5. Redis Sentinel:集群Failover解决方案(转载)

    本文转载自:http://shift-alt-ctrl.iteye.com/blog/1884370 文中的配置例子,还有failover过程中触发的订阅事件具有很好的参考价值. Redis sent ...

  6. Redis Sentinel机制与用法(一)

    Sentinel spring 集群配置: 概述 Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕 ...

  7. Redis Sentinel高可用架构

    Redis目前高可用的架构非常多,比如keepalived+redis,redis cluster,twemproxy,codis,这些架构各有优劣,今天暂且不说这些架构,今天主要说说redis se ...

  8. redis高可用之REDIS SENTINEL

    1. Redis主从配置 1.1. 设置主从复制 Master <= Salve 10.24.6.5:6379 <= 10.24.6.7:6379 1.2.   取消主从复制 1.3.   ...

  9. Redis Sentinel哨兵集群

    Redis Sentinel(哨兵集群)是一种高可用的redis部署方案.在集群中的redis-master服务挂掉时,无需人为干预,即可通过哨兵集群的自我调整,实现redis服务的持续可用. 哨兵集 ...

随机推荐

  1. 问题:页面输出正常,php写入sqlserver乱码/空白。

    问题一:php连接sqlsever2005,输入中文,然后查询sqlserver中对应的数据,由于提交中文是UTF-8,而sqlserver的中文为GBK,所以字段无法匹配,没有查询结果. 问题二,p ...

  2. 源码解析之ConcurrentHashmap

    ConcurrentHashmap算是我看的集合源码里最难理解的了(当然ConcurrentLinkedList虽然代码少但理解起来也累),在Java1.8版本中DougLea大师巧通过妙地代码把锁粒 ...

  3. maven项目(转)

    我记得在搞懂maven之前看了几次重复的maven的教学视频.不知道是自己悟性太低还是怎么滴,就是搞不清楚,现在弄清楚了,基本上入门了.写该篇博文,就是为了帮助那些和我一样对于maven迷迷糊糊的人. ...

  4. unittest模块小结

    这次写的是unittest模块的测试用例,属于自动化的门槛,进去了基本算自动化入了门,测试内容很简单,模拟给url推送用户名.密码测试登录功能 先上代码: #login_test.py import ...

  5. MVC过滤器使用方法

    先介绍下什么是过滤器:ASP.NET MVC中的灭一个请求,都会分配给相应的控制器和对应的行为方法去处理,而在这些处理的前前后后如果想再加一些额外的逻辑处理,这时就用到了过滤器. MVC支持的过滤器有 ...

  6. CS通用项目系统搭建——三层架构第二天

    一.编写配置文件 首先找到编写配置文件的位置.winform会在app.config.webform写在web.config中. <?xml version="1.0" en ...

  7. Selenium Grid和IE /Firefox各种填坑

    使用selenium grid的步骤 1.确保hub和node都安装并且配置好了java jdk. 2.在hub上运行以下命令. java -jar C:\Software\selenium\sele ...

  8. FM(Factorization Machines)模型详解

    优点 FM模型可以在非常稀疏的数据中进行合理的参数估计,而SVM做不到这点 在FM模型的复杂度是线性的,优化效果很好,而且不需要像SVM一样依赖于支持向量. FM是一个通用模型,它可以用于任何特征为实 ...

  9. Laravel 5 速查表

    Artisan // 在版本 5.1.11 新添加,见 http://d.laravel-china.org/docs/5.1/authorization#creating-policiesphp a ...

  10. 再次认识void

    重新认识void 在初学c/c++时感觉void是一个很不起眼的关键字.因为在c++中我使用的还是比较少的.但是到了Linux中,不论是在内核源码中还是在程序编写的过程中有关void与*的组合随处可见 ...