redis 哨兵主从,至少三个哨兵服务器

从配置:

port 6380
dir ./redis-6380
logfile 
slaveof 127.0.0.1 6379

 sentinel

port 16379
sentinel monitor mymaster 127.0.0.1 6379 1   
sentinel down-after-milliseconds mymaster 5000  
sentinel parallel-syncs mymaster 1  
sentinel failover-timeout mymaster 15000  
sentinel auth-pass mymaster 15144
    1. # 哨兵sentinel监控的redis主节点的 ip port
    2. # master-name 可以自己命名的主节点名字 只能由字母A-z、数字0- 、这三个字符".-_"组成。
    3. # quorum 当这些quorum个数sentinel哨兵认为master主节点失联 那么这时 客观上认为主节点失联了
    4. # sentinel monitor <master-name> <ip> <redis-port> <quorum>
    5. sentinel monitor mymaster 127.0.0.1
    6.  
    7. # 当在Redis实例中开启了requirepass foobared 授权密码 这样所有连接Redis实例的客户端都要提供密码
    8. # 设置哨兵sentinel 连接主从的密码 注意必须为主从设置一样的验证密码
    9. # sentinel auth-pass <master-name> <password>
    10. sentinel auth-pass mymaster MySUPER--secret-0123passw0rd
    11.  
    12. # 指定多少毫秒之后 主节点没有应答哨兵sentinel 此时 哨兵主观上认为主节点下线 默认30秒
    13. # sentinel down-after-milliseconds <master-name> <milliseconds>
    14. sentinel down-after-milliseconds mymaster
    15.  
    16. # 这个配置项指定了在发生failover主备切换时最多可以有多少个slave同时对新的master进行 同步,
    17. 这个数字越小,完成failover所需的时间就越长,
    18. 但是如果这个数字越大,就意味着越 多的slave因为replication而不可用。
    19. 可以通过将这个值设为 来保证每次只有一个slave 处于不能处理命令请求的状态。
    20. # sentinel parallel-syncs <master-name> <numslaves>
    21. sentinel parallel-syncs mymaster
    22.  
    23. # 故障转移的超时时间 failover-timeout 可以用在以下这些方面:
    24. #. 同一个sentinel对同一个master两次failover之间的间隔时间。
    25. #. 当一个slave从一个错误的master那里同步数据开始计算时间。直到slave被纠正为向正确的master那里同步数据时。
    26. #.当想要取消一个正在进行的failover所需要的时间。
    27. #.当进行failover时,配置所有slaves指向新的master所需的最大时间。不过,即使过了这个超时,slaves依然会被正确配置为指向master,但是就不按parallel-syncs所配置的规则来了
    28. # 默认三分钟
    29. # sentinel failover-timeout <master-name> <milliseconds>
    30. sentinel failover-timeout mymaster
    31.  
    32. # SCRIPTS EXECUTION
    33.  
    34. #配置当某一事件发生时所需要执行的脚本,可以通过脚本来通知管理员,例如当系统运行不正常时发邮件通知相关人员。
    35. #对于脚本的运行结果有以下规则:
    36. #若脚本执行后返回1,那么该脚本稍后将会被再次执行,重复次数目前默认为10
    37. #若脚本执行后返回2,或者比2更高的一个返回值,脚本将不会重复执行。
    38. #如果脚本在执行过程中由于收到系统中断信号被终止了,则同返回值为1时的行为相同。
    39. #一个脚本的最大执行时间为60s,如果超过这个时间,脚本将会被一个SIGKILL信号终止,之后重新执行。
    40.  
    41. #通知型脚本:当sentinel有任何警告级别的事件发生时(比如说redis实例的主观失效和客观失效等等),将会去调用这个脚本,
    42. 这时这个脚本应该通过邮件,SMS等方式去通知系统管理员关于系统不正常运行的信息。调用该脚本时,将传给脚本两个参数,
    43. 一个是事件的类型,
    44. 一个是事件的描述。
    45. 如果sentinel.conf配置文件中配置了这个脚本路径,那么必须保证这个脚本存在于这个路径,并且是可执行的,否则sentinel无法正常启动成功。
    46. #通知脚本
    47. # sentinel notification-script <master-name> <script-path>
    48. sentinel notification-script mymaster /var/redis/notify.sh
    49.  
    50. # 客户端重新配置主节点参数脚本
    51. # 当一个master由于failover而发生改变时,这个脚本将会被调用,通知相关的客户端关于master地址已经发生改变的信息。
    52. # 以下参数将会在调用脚本时传给脚本:
    53. # <master-name> <role> <state> <from-ip> <from-port> <to-ip> <to-port>
    54. # 目前<state>总是“failover”,
    55. # <role>是“leader”或者“observer”中的一个。
    56. # 参数 from-ip, from-port, to-ip, to-port是用来和旧的master和新的master(即旧的slave)通信的
    57. # 这个脚本应该是通用的,能被多次调用,不是针对性的。
    58. # sentinel client-reconfig-script <master-name> <script-path>
    59. sentinel client-reconfig-script mymaster /var/redis/reconfig.sh

  

posted @ 2021-11-01 16:10  星云惊蛰  阅读(570)  评论(0)    收藏  举报