Redis 在生产配置中;除redis集群、哨兵模式之外;主从模式还是比较普遍的。

配置 redis 多主从;由 keepalived 做 VIP 地址漂移。可以实现redis的高可用性。

keepalived 配置示例;(master 主节点配置,backup根据更改就可以了。)

! Configuration File for keepalived
global_defs {
router_id redis1
} vrrp_script chk_redis
{
script "/etc/keepalived/scripts/redis_check.sh"
interval
timeout
fall
rise
} vrrp_instance redis {
state MASTER
interface eth0
virtual_router_id
priority
advert_int
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
172.16.2.36/
}
track_script {
chk_redis
}
notify_master "/etc/keepalived/scripts/redis_master.sh"
notify_backup "/etc/keepalived/scripts/redis_backup.sh"
notify_fault "/etc/keepalived/scripts/redis_fault.sh"
notify_stop "/etc/keepalived/scripts/redis_stop.sh"
}

Redis 状态检测脚本。

redis_check  Redis 状态检测;

#!/bin/bash
ports=(6379 6389 6399)
port_num=${#ports[@]}
pong_num=
LOGFILE="/opt/keepalived/keepalived-redis-check.log"
echo '-----------------' >> $LOGFILE for port in ${ports[*]}
do
if [ $port -eq ] ;then
ALIVE=`/usr/bin/redis-cli -p $port -h 172.16.2.56 -a tkfJfnMjvniitHDG PING`
else
ALIVE=`/usr/bin/redis-cli -p $port -h 172.16.2.56 -a ffdca1b6f2d4c6d4 PING`
fi
echo "[CHECK]" >> $LOGFILE
date >> $LOGFILE
if [ "$ALIVE" == "PONG" ];then
pong_num=$[$pong_num+]
echo "Success: redis-cli -p $port PING $ALIVE" >> $LOGFILE >&
else
echo "Failed:redis-cli -p $port PING $ALIVE " >> $LOGFILE >&
fi
done if [ $port_num -eq $pong_num ];then
echo "check is ok" >> $LOGFILE
exit
else
echo "check is error" >> $LOGFILE
exit
fi

master 检测;

#!/bin/bash
ports=( )
port_num=${#ports[@]}
LOGFILE="/opt/keepalived/keepalived-redis-state.log"
echo '-------------' >> $LOGFILE
for port in ${ports[*]}
do
echo "[master]" >> $LOGFILE
date >> $LOGFILE
echo "Being master...." >> $LOGFILE >&
echo "Run MASTER cmd ..." >> $LOGFILE >&
echo "Run -p $port SLAVEOF NO ONE cmd ..." >> $LOGFILE
if [ $port -eq ];then
/usr/bin/redis-cli -h 172.16.2.56 -a -p $port slaveof no one >> $LOGFILE >&
else
/usr/bin/redis-cli -h 172.16.2.56 -a -p $port slaveof no one >> $LOGFILE >&
fi
done

backup 检测;

#!/bin/bash
ports=( )
port_num=${#ports[@]}
LOGFILE="/opt/keepalived/keepalived-redis-state.log"
other_ip="172.16.2.57"
echo '----------------' >> $LOGFILE
for port in ${ports[*]}
do
echo "[backup]" >> $LOGFILE
date >> $LOGFILE
echo "Being backup...." >> $LOGFILE >&
echo "Run BACKUP cmd ..." >> $LOGFILE >&
echo "Run -p $port SLAVEOF $other_ip cmd ..." >> $LOGFILE
if [ $port -eq ];then
/usr/bin/redis-cli -h 172.16.2.56 -p $port -a slaveof $other_ip $port >> $LOGFILE >&
else
/usr/bin/redis-cli -h 172.16.2.56 -p $port -a slaveof $other_ip $port >> $LOGFILE >&
fi
done

redis_fault  服务错误检测;

#!/bin/bash
LOGFILE=/opt/keepalived/keepalived-redis-state.log
echo "[fault]" >> $LOGFILE
date >> $LOGFILE

redis 服务停止检测;

#!/bin/bash
LOGFILE=/opt/keepalived/keepalived-redis-state.log
echo "[stop]" >> $LOGFILE
date >> $LOGFILE

Redis + keepalived 高可用行配置检测脚本的更多相关文章

  1. Redis+Keepalived高可用方案详细分析

    背景 目前,Redis集群的官方方案还处在开发测试中,未集成到稳定版中.且目前官方开发中的Redis Cluster提供的功能尚不完善(可参考官方网站或http://www.redisdoc.com/ ...

  2. Redis + keepalived 高可用群集搭建

    本次实验环境介绍: 操作系统: Centos 7.3 IP : 192.168.10.10 Centos 7.3 IP : 192.168.10.20  VIP    地址   : 192.168.1 ...

  3. Redis+Keepalived高可用环境部署记录

    Keepalived 实现VRRP(虚拟路由冗余)协议,从路由级别实现VIP切换,可以完全避免类似heartbeat脑裂问题,可以很好的实现主从.主备.互备方案,尤其是无状态业务,有状态业务就需要额外 ...

  4. 干货 | Keepalived高可用服务配置实例

    一个执着于技术的公众号 Keepalived系列导读 Keepalived入门学习 keepalived安装及配置文件详解 前言 在前面的章节中,我们学习了Keepalived简介.原理.以及Keep ...

  5. Haproxy+keepalived高可用集群实战

    1.1  Haproxy+keepalived高可用集群实战 随着互联网火热的发展,开源负载均衡器的大量的应用,企业主流软件负载均衡如LVS.Haproxy.Nginx等,各方面性能不亚于硬件负载均衡 ...

  6. redis-3.0.1 sentinel 主从高可用 详细配置

    最近项目上线部署,要求redis作高可用,由于redis cluster还不是特别成熟,就选择了redis sentinel做高可用.redis本身有replication,实现主从备份.结合sent ...

  7. 22.LVS+Keepalived 高可用群集

    LVS+Keepalived 高可用群集 目录 LVS+Keepalived 高可用群集 keepalived工具介绍 Keepalived实现原理剖析 VRRP(虚拟路由冗余协议) VRRP 相关术 ...

  8. 基于keepalived对redis做高可用配置---转载

    关于keepalived的详细介绍,请移步本人相关博客:http://wangfeng7399.blog.51cto.com/3518031/1405785 功能 ip地址 安装软件 主redis 1 ...

  9. Nginx反向代理,负载均衡,redis session共享,keepalived高可用

    相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此 ...

随机推荐

  1. webpack入门(一)webpack的动机 ---前端专业英语

    记得某次考试,出国N年老师出的卷子全是英语,坑的英语不好的我们不要不要的.幸亏上了专业英语课.最重要的是专业英语对于我们很重要,比如webpack,一堆博客都是几小时入门,如何会用webpack,当你 ...

  2. ElasticSearch 2 (9) - 在ElasticSearch之下(图解搜索的故事)

    ElasticSearch 2 (9) - 在ElasticSearch之下(图解搜索的故事) 摘要 先自上而下,后自底向上的介绍ElasticSearch的底层工作原理,试图回答以下问题: 为什么我 ...

  3. BZOJ2288 生日礼物

    本题是数据备份的进阶版. 首先去掉所有0,把连续的正数/负数连起来. 计算所有正数段的个数与总和. 然后考虑数据备份,有一点区别: 如果我们在数列中选出一个负数,相当于把它左右连起来. 选出一个正数, ...

  4. django框架中的全文检索Haystack

    1.什么是Haystack Haystack是django的开源全文搜索框架(全文检索不同于特定字段的模糊查询,使用全文检索的效率更高 ),该框架支持Solr,Elasticsearch,Whoosh ...

  5. 对C# .Net4.5异步机制测试

    static void Main(string[] args) { Test(); // 这个方法其实是多余的, 本来可以直接写下面的方法 // await GetName() // 但是由于控制台的 ...

  6. Codeforces Round #523 (Div. 2)

    Codeforces Round #523 (Div. 2) 题目一览表 来源 考察知识点 完成时间 A Coins cf 贪心(签到题) 2018.11.23 B Views Matter cf 思 ...

  7. Luogu P3305 [SDOI2013]费用流 二分 网络流

    题目链接 \(Click\) \(Here\) 非常有趣的一个题目. 关键结论:所有的单位费用应该被分配在流量最大的边上. 即:在保证最大流的前提下,使最大流量最小.这里我们采用二分的方法,每次判断让 ...

  8. 字符输入流 FileReader

    package cn.lideng.demo3; import java.io.FileNotFoundException; import java.io.FileReader; public cla ...

  9. jq实现百度图片移入移出内容提示框上下左右移动的效果

    闲来无聊,看到百度图片hover的时候提示框的效果,遂想试一试自己能否实现. 百度图片hover的效果: 需求: 1. 当鼠标从图片上部移入的时候,提示框从上部移到正常位置.从上部移出的时候,提示框从 ...

  10. 基本类型(2):oracle中有4个大对象(lobs)类型可用,分别是blob,clob,bfile,nclob。

    1)blob:二进制lob,为二进制数据,最长可达4GB,存贮在数据库中. 2)clob:字符lob,字符数据,最长可以达到4GB,存贮在数据库中. 3)bfile:二进制文件;存贮在数据库之外的只读 ...