Redis 哨兵模式

        网上有关redis哨兵模式的介绍、安装部署很多也很完善,本文主要记录自己在安装使用redis哨兵模式中的一些问题过程的记录(比较简单的配置使用,详情的配置使用另行百度)。本文介绍基于windows系统。

        Sentinel(哨兵)是用于监控redis集群中Master状态的工具,是Redis 的高可用性解决方案,sentinel哨兵模式已经被集成在redis2.4之后的版本中。sentinel是redis高可用的解决方案,sentinel系统可以监视一个或者多个redis master服务,以及这些master服务的所有从服务;当某个master服务下线时,自动将该master下的某个从服务升级为master服务替代已下线的master服务继续处理请求。

         sentinel可以让redis实现主从复制,当一个集群中的master失效之后,sentinel可以选举出一个新的master用于自动接替master的工作,集群中的其他redis服务器自动指向新的master同步数据。一般建议sentinel采取奇数台,防止某一台sentinel无法连接到master导致误切换。

       

1、安装启动redis

从官网下载最新版的redis

       复制三份,文件夹分别为redis、redis-one,redis-two

        redis的安装采用 1主 2从

        端口分别为6379(master)  、6380(slave1) 、 6381(slave2)

        然后分别修改 对应配置文件 redis.conf

        两从redis的配置文件中加入如下配:slaveof 127.0.0.1 6379

分别启动三个redis

 可进行测试,当为 主master添加kv时,两从也会更新kv,而两从无法修改,是只读属性

2、安装启动sentinel

 1)、创建sentinel配置文件

 在redis的三个文件夹 redis、redis-one,redis-two 下 分别创建 三个 sentinel.conf(和 redis.conf同级)配置文件。原版sentinel.conf可从reids官网下载

redis(主): 创建 sentinel.conf (26379)

redis-one(从): 创建 sentinel-one.conf(26479)

redis-two(从): 创建 sentinel-two.conf (26579)        

其中 sentinel.conf配置文件如下

port 26379
# Sentinel去监视一个名为mymaster的主redis实例,这个主实例的IP地址为本机地址127.0.0.1,端口号为6379,
# 而将这个主实例判断为失效至少需要2个 Sentinel进程的同意,只要同意Sentinel的数量不达标,自动failover就不会执行
sentinel myid c55de8b313f6152d862dbf82bba1ea9f8bd08d6e
# 指定了Sentinel认为Redis实例已经失效所需的毫秒数。
# 当 实例超过该时间没有返回PING,或者直接返回错误,那么Sentinel将这个实例标记为主观下线。
# 只有一个 Sentinel进程将实例标记为主观下线并不一定会引起实例的自动故障迁移:
# 只有在足够数量的Sentinel都将一个实例标记为主观下线之后,实例才会被标记为客观下线,这时自动故障迁移才会执行
sentinel monitor mymaster 127.0.0.1 6379 2
# 如果在该时间(ms)内未能完成failover操作,则认为该failover失败
sentinel down-after-milliseconds mymaster 6000
# 指定了在执行故障转移时,最多可以有多少个从Redis实例在同步新的主实例,在从Redis实例较多的情况下这个数字越小,同步的时间越长,完成故障转移所需的时间就越长
sentinel failover-timeout mymaster 18000
# Generated by CONFIG REWRITE
dir "D:\\tools\\redis\\Redis-x64-3.2.100"
sentinel config-epoch mymaster 2
sentinel leader-epoch mymaster 2
sentinel known-slave mymaster 127.0.0.1 6380
sentinel known-slave mymaster 127.0.0.1 6381
sentinel known-sentinel mymaster 127.0.0.1 26479 35640d07ff229f1ca998d67432a39cb08e788ca0
sentinel known-sentinel mymaster 127.0.0.1 26579 49bf18af8db4df688d4f6b25ebb84f3827d89665
sentinel current-epoch 2

其它sentinel的配置文件同上,只是需要修改如下的ip,端口,id

 

 2)、启动

D:\tools\redis\Redis-x64-3.2.100\redis-server sentinel.conf --sentinel

 3) 测试

 把master(6379)关掉,测试sentinel能否检测到,并产生新的master

关掉后 sentinel(26379)控制台 日志如下:

已重新产生了新的master,6381作为新的master,6380作为从

因为主6379已断掉不可用了,所以把6379作为从后,sentinel也从6379 关闭。

如果此时 再把 6379 启动,启动日志如下

 再启动时 6379 已作为从

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值