应业务要求,需要对单点的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集群模式
阅读(1296) | 评论(0) | 转发(0) |