sentinel监控主从服务器

来源:互联网 发布:非农数据分析 编辑:程序博客网 时间:2024/06/05 23:06

1 启动三个redis,端口分别是6379,6380,6381,master是6379端口,slave分别是6380,6381端口


2如果master机器redis服务器挂了。那么会导致整个redis系统都用不了。有两种方案,一种是手动把剩下的两个redis做主从,一个是自动把剩下的做主从。

手动主从

1 修改其中的一个redis为master,比如修改6380端口的redis为master

    1修改为slaveof no one

    2修改为slave-read-only no


2 修改剩下的6381的端口的redis指向的master服务器为6380端口

    1修改为slaveof localhost 8380


使用sentinel自动化主从

1 拷贝sentinel.conf到usr/local/redis/下面

2 修改配置 sentinel.conf

   sentinel monitor mymaster 127.0.0.1 6379 1                       监控master地址和端口     

   sentinel down-after-milliseconds mymaster 30000              连接多少毫秒连不上认为donw

   sentinel parallel-syncs mymaster 1                                          

   sentinel failover-timeout mymaster 180000                           多少分钟以内没有完成自动监控,则认为失败

 

3 启动三个redis,并启动sentinel ,关闭6379的redis,过一会会发现master由6379转为6380 

 ./redis-server  ./sentinel.conf  --sentinel




进入6380的客户端,查看状态,会发现该redis由slave变为master


最后,如果不想由6380变为master,想自己制定的redis变为master,可以修改优先级,修改redis.conf

slave-priority 100  数字越小,优先级越大。

注意如果第1次写后,人工down掉master,剩下的slave会提升成master,第二次写ok,但此时redis节点中,只剩master,没有slave了,从测试结果上看,第二次get还是尝试去找slave节点,但是此时已经不存在了,所以一直在等候,导致后面的的处理被阻塞。

这不是redis的问题,而是Redisson客户端设计不够智能。

鉴于这种现状,如果要使用Redisson,最好做成1主2从的部署结构:(sentinel.conf中的“法定人数”,建议调整成2)

这样的好处是,1个master挂掉后,剩下的2台slave中,会有1台提升为master,整体仍然保证有1个master和1个slave,读写均不受影响。







0 0