Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1632230
  • 博文数量: 63
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 646
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-26 18:02
个人简介

祸兮福之所倚,福兮祸之所伏

文章分类

全部博文(63)

文章存档

2020年(11)

2019年(10)

2017年(10)

2016年(25)

2015年(7)

我的朋友

分类: NOSQL

2016-08-18 14:46:45

         应业务要求,需要对单点的redis做高可用,选择了官方提供的sentinel(哨兵)提供redis主从高可用。
        sentinel 功能:Monitoring  监控redis主从的情况
                             Notification  通知系统监控的某个redis实例挂掉
                                    Automatic failover  自动进行故障转移 ,自动从slaves中选举一个成为master ,其他slave从属新master
                                    Configuration provider    充当客户端和redis的中间层,永远向客户端返回可用的redis服务地址

           下载redis    wget    

            安装过程省略
            安装成功后 有个默认的sentinel.conf  文件   

          启动sentinel     
redis-sentinel /path/to/sentinel.conf
或者
redis-server /path/to/sentinel.conf --sentinel

sentinel.conf 常用配置

port   26379   默认工作端口,使用sentinel集群需要分配不同端口 
daemon   yes    后台工作模式
dir    '/tmp'       工作目录
logfile   './sentinel.log'           指定日志,相对于/tmp而言   日志存在于/tmp/sentinel.log

 sentinel  monitor   mymaster   127.0.0.1 6379  1              
 sentinel monitor  是语法固定      mymaster是自己命名的一组主从名称   127.0.0.1 6379 是监控的主redis地址   1 代表投票数,在sentinel集群中代表多1个sentinel认为不可用,此redis才会被认为不可用 

sentinel   down-after-milliseconds mymaster  30000   在多少时间内无发挥状态,认定不可用  (单位毫秒)
sentinel failover-timeout mymaster 180000   故障迁移多少时间未成功 代表迁移失败 

   只需要写上master的就可以,sentinel能自动检测出所有slaves

如有多个master-slave实例   可以新增实例名

所有的配置都能在sentinel客户端中配置

sentinel 会自动把识别的slave信息加到sentinel.conf中

启动顺序master->slave->sentinel   
 
客户端连接
客户端直接连接sentinel   通过redis-cli -p 26379
通过   SENTINEL get-master-addr-by-name mymaster 命令获取当前可用的master ,通过此master进行数据存取

也可以通过此接口直接编辑一主主从实例
为避免sentinel单点,可以使用sentinel集群模式











 
                               
         
阅读(1215) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~