在主从复制的基础上,哨兵模式sentinel是redis官方提供的高可用方案。哨兵sentinel主要有以下几个功能:
1、实时监控redis主从复制状态;
2、如果redis主从复制状态改变,可以实现通知;
3、如果主节点宕机,可以进行自动故障切换;
官方建议sentinel至少配置3个节点,2个节点故障切换不会进行。sentinel对于不可用有两种不同的看法,一个叫主观不可用(sdown),另外一个叫客观不可用(odown)。当master主节点宕机,只有在大多数的sentinel都认为master宕机,也就是odown的时候才会触发故障切换。具体多少数值在sentinel的配置文件中配置,不能大于sentinel总数。
架构
如下图所示:
搭建步骤
以下是配置环境:
操作系统:centos 7.5 64位
redis版本:3.2.12
主服务器:172.16.10.128 端口:6379
从服务器:172.16.10.129 端口:6379
从服务器:172.16.10.130 端口:6379
一、安装redis、配置主从复制这个可以参考:http://www.szl724.com/?p=3063.html
二、配置sentinel集群修改sentinel的配置,默认在?/etc/redis-sentinel.conf 。三台服务器都需要修改,注意redis-sentinel文件的权限,redis-sentinel进程需要修改该文件。
port 26379bind 0.0.0.0dir /tmpdaemonize yeslogfile /var/log/redis/sentinel.log# 6379sentinel monitor master-6379 172.16.10.128 6379 2sentinel down-after-milliseconds master-6379 15000sentinel auth-pass master-6379 123456修改后启动sentinel进程。
systemctl enable redis-sentinelsystemctl start redis-sentinel查看进程和日志,看到如下日志说明redis sentinel哨兵集群配置成功。
三、虚拟vip高可用redis和sentinel的集群已经配置完成,最后一步是利用sentinel配置里的client-reconfig-script参数和自定义脚本实现虚拟ip的绑定和删除。因为绑定vip需要root权限,所以还需要分别修改三台服务器的sudo配置文件,给redis用户授权。
cat /etc/sudoers.d/redisredis all=(all) nopasswd:/sbin/ip,nopasswd:/sbin/arping配置自定义脚本
[root@master ~]# cat /var/lib/redis/failover.sh #!/bin/bashmaster_ip=${6}my_ip=\'172.16.10.128\'vip=\'172.16.10.200\'netmask=\'24\'interface=\'ens33\'if [ ${master_ip} = ${my_ip} ]; then sudo /sbin/ip addr add ${vip}/${netmask} dev ${interface} sudo /sbin/arping -q -c 3 -a ${vip} -i ${interface} exit 0else sudo /sbin/ip addr del ${vip}/${netmask} dev ${interface} exit 0fiexit 1my_ip、vip和interface根据实际情况修改。
修改sentinel配置,添加如下内容
sentinel client-reconfig-script master-6379 /var/lib/redis/failover.sh重启sentinel。
四、测试关闭master 172.16.10.128的redis,可以看到sentinel已经把master角色给了172.16.10.130 。
登录172.16.10.130 ,虚拟vip添加成功。
至此redis sentinel vip架构的高可用就已经基本实现,这种方式可以有效避免redis单点故障的问题。
怎么样成为域名空间代理商?简单网站制作的方法是什么?个人想买个云服务器wps怎么设置自动保存 wps的自动保存在哪里设置【池州seo】一起看看百度快照的网络运营阿里云服务器ecs和vpc万豪以136亿美元收购喜达屋,还拿下了极品2字母域名“理财”LC.com!小程序云服务器怎么选配置参数购物网站建设模板都有哪些特点?购物网站建设多少钱