安装和部署Reids Sentinel

12 篇文章 0 订阅

目录

1 先搭好一主两从redis的主从复制

2、配置

2.1 redis sentinel哨兵机制核心配置(也是3个节点)

2.2 哨兵其它的配置

2.3 启动sentinel服务

2.4    测试

3  部署建议


1 先搭好一主两从redis的主从复制

http://blog.csdn.net/fyihdg/article/details/79247469

 A主节点6379节点(/usr/local/bin/conf/redis6379.conf):

修改 requirepass 12345678,注释掉#bind 127.0.0.1,就是注释IP地址,这里面不能绑定IP

B从节点redis6380.conf和redis6381.conf:

修改 requirepass 12345678 ,注释掉#bind 127.0.0.1,

加上masterauth 12345678 ,加上slaveof 127.0.0.1 6379

    注意当主从起来后,主节点可读写,从节点只可读不可写

2、配置

安装redis后,默认是没有sentinel_26379.conf文件的,得自己建这样的文件,文件内容大概如下:

protected-mode no
port 26379
dir "/tmp"

sentinel monitor mymaster 192.168.177.138 6379 2
sentinel auth-pass mymaster 12345678
sentinel config-epoch mymaster 43
sentinel leader-epoch mymaster 43
sentinel known-sentinel mymaster 192.168.177.138 26381 01744cc11a00f8eed23cce518daad1451e34b09f
sentinel current-epoch 43


2.1 redis sentinel哨兵机制核心配置(也是3个节点)

       /usr/local/bin/conf/sentinel_26379.conf  
       /usr/local/bin/conf/sentinel_26380.conf
       /usr/local/bin/conf/sentinel_26381.conf
将三个文件的端口改成: 26379   26380   26381
然后:sentinel monitor mymaster 190.168.1.111 6379 2  //监听主节点6379
      sentinel auth-pass mymaster 12345678     //连接主节点时的密码
三个配置除端口外,其它一样。


2.2,哨兵其它的配置

只要修改每个sentinel.conf的这段配置即可:
sentinel monitor mymaster 192.168.1.10 6379 2  
//监控主节点的IP地址端口,sentinel监控的master的名字叫做mymaster
2代表,当集群中有2个sentinel认为master死了时,才能真正认为该master已经不可用了
sentinel auth-pass mymaster 12345678  //sentinel连主节点的密码
sentinel config-epoch mymaster 2  //故障转移时最多可以有2从节点同时对新主节点进行数据同步
sentinel leader-epoch mymaster 2
sentinel failover-timeout mymasterA 180000 //故障转移超时时间180s,                            
a,如果转移超时失败,下次转移时时间为之前的2倍;
b,从节点变主节点时,从节点执行slaveof no one命令一直失败的话,当时间超过180S时,则故障转移失败
c,从节点复制新主节点时间超过180S转移失败
sentinel down-after-milliseconds mymasterA 300000//sentinel节点定期向主节点ping命令,当超过了300S时间后没有回复,可能就认定为此主节点出现故障了……
sentinel parallel-syncs mymasterA 1 //故障转移后,1代表每个从节点按顺序排队一个一个复制主节点数据,如果为3,指3个从节点同时并发复制主节点数据,不会影响阻塞,但存在网络和IO开销
 


2.3 启动sentinel服务

            ./redis-sentinel conf/sentinel_26379.conf &
            ./redis-sentinel conf/sentinel_26380.conf &
            ./redis-sentinel conf/sentinel_26381.conf &


关闭:./redis-cli -h 192.168.1.111 -p 26379 shutdown


2.4    测试

kill -9 6379  杀掉6379的redis服务
看日志是分配6380 还是6381做为主节点,当6379服务再启动时,已变成从节点


假设6380升级为主节点:进入6380>info replication     可以看到role:master
打开sentinel_26379.conf等三个配置,sentinel monitor mymaster 127.0.0.1 6380 2
打开redis6379.conf等三个配置, slaveof 192.168.1.111 6380,也变成了6380
注意:生产环境建议让redis Sentinel部署到不同的物理机上。


重要:sentinel monitor mymaster 192.168.1.111 6379 2 //切记将IP不要写成127.0.0.1
不然使用JedisSentinelPool取jedis连接的时候会变成取127.0.0.1 6379的错误地址
注:我们稍后要启动四个redis实例,其中端口为6379 的redis设为master,其他两个设为slave 。所以mymaster 后跟的是master的ip和端口,最后一个’2’代表只要有2个sentinel认为master下线,就认为该master客观下线,选举产生新的master。通常最后一个参数不能多于启动的sentinel实例数。

哨兵sentinel个数为奇数,选举嘛,奇数哨兵个才能选举成功,一般建议3个

RedisSentinel如何监控2redis主节点呢

sentinel monitor mymasterB 192.168.1.20 6379 2
……与上面一样…………。
 

3  部署建议

a,sentinel节点应部署在多台物理机(线上环境)
b,至少三个且奇数个sentinel节点
c,通过以上我们知道,3个sentinel可同时监控一个主节点或多个主节点
    监听N个主节点较多时,如果sentinel出现异常,会对多个主节点有影响,同时还会造成sentinel节点产生过多的网络连接,
    一般线上建议还是, 3个sentinel监听一个主节点

sentinel哨兵的API
   命令:redis-cli -p 26379  //进入哨兵的命令模式,使用redis-cli进入
  26379>sentinel masters或sentinel master mymaster //查看redis主节点相关信息
  26379>sentinel slaves mymaster  //查看从节点状态与相关信息 
  26379>sentinel sentinels mymaster //查sentinel节点集合信息(不包括当前26379)
  26379>sentinel failover mymaster //对主节点强制故障转移,没和其它节点协商


客户端连接(redis-sentinel例子工程)
   远程客户端连接时,要打开protected-mode no
   ./redis-cli -p 26380 shutdown //关闭
   在使用工程redis-sentinel,调用jedis查询的流程如下:
     1,将三个sentinel的IP和地址加入JedisSentinelPool
     2,根据IP和地址创建JedisSentinelPool池对象
     3,在这个对象创建完后,此时该对象已把redis的主节点
(此时sentinel monitor mymaster 必须写成192.168.1.111 6379 2,不能为127.0.0.1,不然查询出来的主节点的IP在客户端就变成了127.0.0.1,拿不到连接了)查询出来了,当客户准备发起查询请求时,调用pool.getResource()借用一个jedis对象,内容包括主节点的IP和端口;
     4,将得到jedis对象后,可执行jedis.get(“age”)指令了……。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fyihdg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值