Redis高可用
需求
(1)Redis运行在docker容器中;(2)实现双机热备,当redis-master异常时,redis-slave快速切换成master提供服务。
(3)当redis-master数据更新时,redis-slave数据能同步更新。
解决方案
利用keepalived实现redis的高可用。keepalived利用shell脚本,定期检测redis服务是否正常。当redis服务异常时,利用虚拟IP的漂移实现故障切换。
部署实现
1.环境说明
对象 | 版本 | 备注 |
---|---|---|
redis-master主机 | centos 7 | IP:XX.XX.93.179 |
redis-slave主机 | centos 7 | IP:XX.XX.93.182 |
keepalived软件版本:1.2.13
天擎6的skylar-redis镜像包版本:1600
虚拟IP地址:XX.XX.93.180。注意:要选择没有被占用的虚拟IP地址
2.安装
(1)在master、slave主机上,都需安装keepalived、ipvsadm
$ yum -y install ipvsadm keepalived
查看keepalived是否安装成功:
$ keepalived -v
Keepalived v1.2.13 (03/06,2015)
(2)在master、slave主机上,都需启动skylar-redis容器
$ docker run --name=redis --restart=always -d --net=host --privileged=true -v /data/redis:/var/lib/redis/ skylar_redis
(3)配置keepalived,添加shell脚本。
master、slave主机的/etc/keepavlied/keepavlied.conf都需要修改,内容略微不同。