redis主从故障自动切换IP漂移
随着web2.0时代的到来,对web服务QPS要求越来越高,天下武功唯快不破,将数据存储到内存无疑是IO最快的方式。内存容量和价格已经不能再限制我们的想象力,因此使用redis代替传统数据库可以成为高QPS的一个选择。
本文将介绍redis主从复制模式,故障自动切换和虚拟IP的漂移。redis主从复制可以提供数据冗余容灾,sentinel实现故障自动切换保证服务高可用,keepalived 可使客户端不必在redis故障切换后做任何操作,只需要访问固定的虚拟IP即可。
redis主从复制配置
master: 192.168.1.103
slave :192.168.1.104
master配置redis.conf
1. 注释bind 127.0.0.1,不然slave无法同步数据。
2.
protected-mode yes # 开启保护模式
requirepass "123456" #访问密码
daemonize yes #后台方式启动
masterauth "123456" #slave的密码,当slave切换成master时需要同步新master的数据
slave配置redis.conf
配置同master,只需要添加
slaveof 192.168.1.103 6379
哨兵故障自动切换
哨兵sentinel是redis自带的故障自动切换工具。
master配置sentinel.conf
daemonize yes #后台方式启动
sentinel monitor mymaster1 192.168.1.103 6379 1 #监控103,最后的1表示只要一个哨兵标志103 down,则认为down.
sentinel down-after-milliseconds mymaster1 3000 #多长时间连不上则认为他down,单位毫秒
sentinel auth-pass mymaster1 123456 #认证密码
slave配置sentinel.conf
daemonize yes #后台方式启动
sentinel monitor mymaster2 192.168.1.104 6379 1 #监控103,最后的1表示只要一个哨兵标志104 down,则认为down.
sentinel down-after-milliseconds mymaster2 3000 #多长时间连不上则认为他down,单位毫秒
sentinel auth-pass mymaster2 123456 #认证密码
keepalived IP漂移
虚拟ip的添加,略。。。
添加keepalived监控redis脚本
master和slave相同
vim check_redis.sh
#!/bin/bash
###/etc/keepalived/scripts/redis_check.sh
ALIVE=`/usr/redis-4.0.9/src/redis-cli PING` #参考使用只修改redis-cli的路径即可
if [ "$ALIVE" == "PONG" ]; then
echo $ALIVE
exit 0
else
echo $ALIVE
exit 1
fi
添加执行权限
chmod 777 check_redis.sh
修改keepalived.conf
master配置如下:
global_defs {
notification_email {
1277205804@qq.com
}
#notification_email_from keepalived_adm
#smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script check_redis {
script "/usr/redis-4.0.9/check_redis.sh" #要执行的脚本
interval 1 # 执行脚本间隔时间
weight -10 #满足监控的脚本(redis down),权重减10
}
vrrp_instance VI_1 {
state BACKUP # master和slave都配置为backup,keepalived根据权重选出master
interface eth0
virtual_router_id 51 # 与slave的值要一致
nopreempt #master挂掉重启后不抢占
priority 100 # 优先级,要比slave大
advert_int 0.5
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.100 #虚拟ip
}
track_script {
check_redis #执行脚本
}
}
slave配置
global_defs {
notification_email {
1277205804@qq.com
}
#notification_email_from keepalived_adm
#smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script check_redis {
script "/usr/redis-4.0.9/check_redis.sh" #要执行的脚本
interval 1 # 执行脚本间隔时间
weight -10 #满足监控的脚本(redis down),权重减10
}
vrrp_instance VI_1 {
state BACKUP # master和slave都配置为backup,keepalived根据权重选出master
interface eth0
virtual_router_id 51 # 与master的值要一致
priority 99 # 优先级,要比master小
advert_int 0.5
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.100 #虚拟ip
}
track_script {
check_redis #执行脚本
}
}
测试
启动master和slave
启动redis
src/redis-server redis.conf
启动哨兵
src/redis-sentinel sentinel.conf
启动keepalived
sudo service keepalived restart
测试验证
关闭master。。。略
重启master。。。略
ok, done.
redis主从故障自动切换IP漂移相关推荐
- mongodb----副本集搭建及故障自动切换
mongodb副本集搭建 mongodb单台服务器 数据会有丢失的风险 单台服务器无法做高可用 mongodb副本集能够预防数据丢失,多台mongodb数据一致. mongodb副本集能够在有问题的时 ...
- Windows系统自动切换IP批处理
对于同时使用内外网的用户来说,经常需要手动切换内外网的IP.现提供一个自动切换IP的批处理. windows7如下: netsh interface ip set address name=" ...
- 拼多多客京东客蘑菇街小程序v9.1高佣联盟无限多开版 新增两个京东备用接口,故障自动切换接口 小程序
拼多多客京东客蘑菇街小程序v9.1高佣联盟无限多开版 新增两个京东备用接口,故障自动切换接口 小程序 [后端升级新版] 1.新增两个京东备用接口,故障自动切换接口. 学习资料源码:拼多多客京东客蘑菇街 ...
- php 连接redis哨兵,Redis哨兵模式实现主从故障互切换的方法
Redis Sentinel 是一个分布式系统, 你可以在一个架构中运行多个 Sentinel 进程(progress), 这些进程使用流言协议(gossip protocols)来接收关于主服务器是 ...
- Redis 哨兵模式实现主从故障互切换
转自 https://www.cnblogs.com/chenmh/p/5578376.html 介绍 Redis Sentinel 是一个分布式系统, 你可以在一个架构中运行多个 Sentinel ...
- 结合keepalived实现redis群集高可用故障自动切换
系统架构图: 我们所要实现的目的很简单, 104,107 为keepalive和redis主从架构,其余服务器比如105.106均为redis从库并且挂在vip 192.168.56.180下面. 主 ...
- mysql双主故障自动切换_MySQL主库高可用 -- 双主单活故障自动切换方案
前言:(PS:前言是后来修改本文时加的)对于这篇文章,有博友提出了一些疑问和见解, 有了博友的关注,也促使我想把这套东西做的更实用.更安全.后来又经过思考,对脚本中一些条件和行为做了些改变.经过几次修 ...
- Redis Sentinel主从复制自动切换方案
一.准备环境 #配置环境: Redis Sentinel:192.68.40.16:26379 Redis server主:192.168.40.17:6379 Redis server从:192.1 ...
- 主数据库宕机怎么办?MHA高可用帮你实现主从服务器自动切换(详细操作与命令详解)
一.MHA简介 上一篇介绍了MySQL的主从复制.读写分离,实现主从服务器同步的架构,它存在单点故障的隐患,一旦主服务器出现故障,将无法进行写入,为了解决这个问题,可以考虑是否能够让从服务器切换角色, ...
- mysql双主故障自动切换_mysql双主热备宕机自动切换
一.定义 通常说的「双机热备」是指两台机器都在运行,但并不是两台机器都同时在提供服务.当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短. 二.原理 Keepal ...
最新文章
- 华南赛区线上比赛安排
- 重学java基础第五课:博客的重要性
- 把光标放在EditText中文本最后
- Python数据分析与机器学习42-Python库分析科比生涯数据
- 项目组最重要的三个角色
- halfstone 原理_打水漂的原理研究
- 又到一年清明时,又是一年踏春季
- 经典的广告词及其翻译
- Android音视频基础知识
- IDEA添加gitlab仓库并上传代码(无需使用任何git指令),报错Ask a project Owner or Maintainer to create a default branch解决方案
- 面试官:什么是静态代理?什么是动态代理?注解、反射你会吗?
- 知物由学 | iOS AssetBundle资源保护
- 【Windows必备软件】01 Groupy 实现你所有的窗口标签化管理
- android 拨打电话、 监听来电、监听呼出电话的功能实现
- 1000:入门测试题目--信息学奥赛一本通题解
- DataTable小详解
- EDIUS怎么制作字幕停留效果?
- 守望之夏:地图投影的N种姿势
- 承兑汇票拒付什么情况下才能追索
- html文档兼容模式,怎么取消兼容模式 excel出现兼容模式怎么取消