redis主从加哨兵

配置redis主从加哨兵

Sentinel 程序可以在编译后的 src 文档中发现, 它是一个命名为 redis-sentinel 的程序。
Redis 源码中包含了一个名为 sentinel.conf 的文件, 这个文件是一个带有详细注释的 Sentinel 配置文件示例。
运行一个 Sentinel 所需的最少配置如下所示:
// 监控一个 Redis 服务器
// 名称为 mymaster ,IP 为 127.0.0.1 端口为 6380
// 最后的 2 是指最少有 2 给 Sentinel 实例同意一台 redis 服务器宕机,才会认为 客观下线。
// sentinel monitor 自定义的主节点名称 主节点的 IP 主节点端口 票数
sentinel monitor mymaster 127.0.0.1 6380 2
sentinel down-after-milliseconds mymaster 3000
// 180 秒后开始故障自动装换
sentinel failover-timeout mymaster 5000
sentinel parallel-syncs mymaster 1

down-after-milliseconds 选项指定了 Sentinel 认为服务器已经断线所需的毫秒数。
如果服务器在给定的毫秒数之内, 没有返回 Sentinel 发送的 PING 命令的回复, 或者返回一个错误, 那么 Sentinel 将这个服务器标记为主观下线(subjectively down,简称 SDOWN )。
不过只有一个 Sentinel 将服务器标记为主观下线并不一定会引起服务器的自动故障迁移: 只有在足够数量的 Sentinel 都将一个服务器标记为主观下线之后, 服务器才会被标记为客观下线(objectively down, 简称 ODOWN ), 这时自动故障迁移才会执行。
客观下线就是有2台哨兵觉得你宕机了你就是宕机 如果只有一台只是他的主观下线 所以上面的参数设置为2

parallel-syncs 选项指定了在执行故障转移时, 最多可以有多少个从服务器同时对新的主服务器进行同步, 这个数字越小, 完成故障转移所需的时间就越长。
这个参数意思就是故障转移时可以有几个从服务器对新的主服务器同步数据 所以数字小 完成时间越长

过滤原文件到sentinel-27000.conf
grep -Ev ‘#|KaTeX parse error: Expected group after '^' at position 60: …conf grep -Ev '^̲#|^’ sentinel.conf > /etc/redis/sentinel-27001.conf
grep -Ev ‘#|$’ sentinel.conf > /etc/redis/sentinel-27002.conf
修改监听端口
sed -i ‘s/26379/27000/g’ /etc/redis/sentinel-27000.conf
sed -i ‘s/26379/27001/g’ /etc/redis/sentinel-27001.conf
sed -i ‘s/26379/27002/g’ /etc/redis/sentinel-27002.conf
修改 dir 指定的目录
最终的配置文件 配置文件最好指定具体ip地址 不是 127.0.0.1不然有可能会故障转移不过去 当然这是一台多实例的 多台不存在这种情况
sentinel-27000.conf

daemonize yes
port 27000
dir /redis/data/
logfile /var/log/sentinel-27000.log
sentinel monitor mymaster 127.0.0.1 6380 2
sentinel down-after-milliseconds mymaster 3000
sentinel failover-timeout mymaster 5000
sentinel parallel-syncs mymaster 1

启动服务的语法:
redis-sentinel sentinel的配置文件 我的是/etc/redis/sentinel-27000.conf
3个哨兵依次启动
启动哨兵后哨兵的配置文件会添加内容 不要动它
可以使用以下命令查看哨兵的信息
[root@server ~]# redis-cli -p 27001 info
…略…

Sentinel

sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=127.0.0.1:6380,slaves=2,sentinels=3

故障演练

停止 Master 节点的服务
redis-cli -p 6380 shutdown
不断的刷新其中一个 Sentinel 节点的信息,观察最后一行信息的变化
redis-cli -p 27001 info
…略…
master0:name=mymaster,status=ok,address=127.0.0.1:6382,slaves=2,sentinels=3
端口就会转移到6382上 如果想转移回来就停止哨兵和redis进程
重新启动redis主从和3个哨兵就好了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值