首页 > 其他 > 详细

redis sentinel

时间:2019-11-21 15:35:45      阅读:79      评论:0      收藏:0      [点我收藏+]

本文不对redis sentinel 的原理和部署做更多说明,通过简单的介绍部署说明一下sentinel客户的实现及部署应该注意的一些问题。想对redis sentinel原理了解更多请求参考:http://redis.cn/topics/sentinel.html

redis sentinel 部署示意图:

技术分享图片

从图中可以看到sentinel,介于client和redis之间,请求redis之前,从sentinel获取redis信息。

sentinel 客户端实现流程:

大概分为四步:

1、获取sentinel节点,遍历这些节点,并选出一个可用节点

2、向可用的sentinel节点发送get-master-addr-by-name和master-name,获取当前master;发送slaves和master-name获取所有slave节点,并根据s-down-time等属性,判断slave是否可用

 

3、获得master后执行一次role来验证是否是master节点

4、根据获得的master和slave节点信息,访问redis服务

python 的redis客户端支持sentinel :https://github.com/andymccurdy/redis-py

部署及注意的问题:

 方案一:互备,读写master,slave只做备份使用

优点:结构简单,而且可以把一些影响性能的操作只在slave开启,比如持久化

缺点:支付的服务场景较简单,对访问量大的应用单机支持存在瓶颈,需要更具业务拆分到不同的机器

方案二:读写分离,即master负责写,slave负责读

优点:读写分离,能支持更大访问请求

缺点:想要在服务的机器上关闭持久化等,需要再增加slave的slave实现,所有master的slave都会被读到服务环境(除非客户端中排除)

注意的问题:

1、如果redis配置需要密码才能访问,那么主从密码应该设置成一样的,不然故障转移后,sentinel会访问不到节点

2、特别需要注意的是初始的master上也要配置masterauth,不然切换后主从后同步会异常

3、注意client-output-buffer-limit,min-slaves-to-write等配置

redis sentinel

原文:https://www.cnblogs.com/pk-tiger/p/11905860.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!