redis哨兵服务

哨兵服务

(主从redis服务有密码验证搭建完成的情况下)

192.168.4.51 主服务器
192.168.4.52 从服务器
192.168.4.57 哨兵服务器

一、安装哨兵服务
1)源码编译安装redis,无需作初始化操作

    [root@redis57 redis]# yum -y install gcc 
    [root@redis57 redis]# tar -zxf redis-4.0.8.tar.gz
    [root@redis57 redis]# cd redis-4.0.8/
    [root@redis1 redis-4.0.8]# make
    [root@redis1 redis-4.0.8]# make install

2)修改主配置文件

    [root@redis57 redis]# vim  /etc/sentinel.conf  //创建主配置文件
    sentinel   monitor   server51   192.168.4.51   6351   1 //监视主服务器
    bind  0.0.0.0    //哨兵服务地址(表示本机所有网络接口)
    sentinel auth-pass  server51   123456   //主服务器密码
    :wq

3)启动哨兵服务

    [root@redis57 redis]# redis-sentinel /etc/sentinel.conf    //启动哨兵服务
    25371:X 28 Sep 11:16:54.993 # +sdown master redis51 192.168.4.51 6351
    25371:X 28 Sep 11:16:54.993 # +odown master redis51 192.168.4.51 6351 #quorum 1/1
    25371:X 28 Sep 11:16:54.993 # +new-epoch 3
    25371:X 28 Sep 11:16:54.993 # +try-failover master redis51 192.168.4.51 6351
    25371:X 28 Sep 11:16:54.994 # +vote-for-leader be035801d4d48eb63d8420a72796f52fc5cec047 3
    ...
    25371:X 28 Sep 11:16:55.287 * +slave slave 192.168.4.51:6351 192.168.4.51 6351 @ redis51 192.168.4.52 6351
    25371:X 28 Sep 11:17:25.316 # +sdown slave 192.168.4.51:6379 192.168.4.51 6379 @ redis51 192.168.4.52 6352

二、测试配置

1)停止主服务的51的redis服务

    [root@redisA ~]# /etc/init.d/redis_6379 stop
    Stopping ...
    Waiting for Redis to shutdown ...
    Redis stopped

2)在从服务器52上查看复制信息

     [root@redisB ~]# redis-cli -h 192.168.4.52 -p 6352
    192.168.4.52:6352> info replication
    # Replication
    role:master  //角色是master
    connected_slaves:0
    ……
    ……

总结
redis哨兵机制
1)简介
Redis-Sentinel是Redis官方推荐的高可用(HA)方案,当用Redis 做master-slave高可用方案时,假如master宕机了,redis本身(包括它的很多客服端)都没有实现自动的主备切换,而Redis-Sentinel本身也是一个独立运行的进程,它能监控多个master-slave集群,发现master宕机后能自动切换。
2)功能
不时监控redis是否按照预期的良好的运行。
如果发现某个redis节点运行出现状况,能够通知别外一个进程(如它的客户端)。
能够进行自动切换。当一个master节点不可用时,能够选举出master的多个slave(如果超过一个slave的话)中的一个来作为新的master,其它的slave节点会将他的master地址改为新提升为master的服务器的地址。
3)优缺点
优点:
哨兵模式是基于主从模式的,所有主从的优点,哨兵模式都有。主从可以自动切换,系统更健壮,可用性更高
缺点:
redis较难支持在线扩容,在集群容量达上限时在线扩容变的很复杂。
原理

1、Sentinel集群通过给定的配置文件发现master,启动时会监控master。通过向master发送info信息获得该服务下面的所有从服务器。
2、Sentinel集群通过命令连接向被监控的主从服务器发送hello信息(每秒一次),该信息包括Sentinel本身的ip、端口、id等内容,以此来向其他Sentinel宣告自己的存在。
3、Sentinel集群通过订阅连接接收其他Sentinel发送的hello信息,以此来发现监视同一个主服务器的其他Sentinel;集群之间会互相创建命令连接用于通信,因为已经有主从服务器作为发送和接收hello信息的中介,Sentinel之间不会创建订阅连接。
4、Sentinel集群使用Sentinel命令来检测实例的状态,如果指定的时间内(down-after-milliseconds)没有回复或者返回错误回复,那么该实例被判为主观下线SDOWN。
5、当failover主备切换被触发后,failover并不会马上进行,还需要Sentinel集群中另外quorum个其他Sentinel授权,成功后进入ODOWN客观下线状态,之后再进行failover。
6、Sentinel向选为master的slave发送slaveof no one 命令,选择slave的条件是首先会根据slave的优先级来排序,优先级越小排名越靠前。如果相同,则查看复制的下标,哪个接收master的复制数据越多哪个越靠前,如果两个都一样就选择进程ID较小的。
7、Sentinel被授权后会获得宕机的master的一份最新配置版本号(config-epoch)当failover结束后,这个版本号将会用于最新的配置,通过广播的形式通知其他Sentinel,其它的Sentinel则更新对应的master配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值