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

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

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

  1. ! Configuration File for keepalived
  2. global_defs {
  3. router_id redis1
  4. }
  5.  
  6. vrrp_script chk_redis
  7. {
  8. script "/etc/keepalived/scripts/redis_check.sh"
  9. interval
  10. timeout
  11. fall
  12. rise
  13. }
  14.  
  15. vrrp_instance redis {
  16. state MASTER
  17. interface eth0
  18. virtual_router_id
  19. priority
  20. advert_int
  21. authentication {
  22. auth_type PASS
  23. auth_pass
  24. }
  25. virtual_ipaddress {
  26. 172.16.2.36/
  27. }
  28. track_script {
  29. chk_redis
  30. }
  31. notify_master "/etc/keepalived/scripts/redis_master.sh"
  32. notify_backup "/etc/keepalived/scripts/redis_backup.sh"
  33. notify_fault "/etc/keepalived/scripts/redis_fault.sh"
  34. notify_stop "/etc/keepalived/scripts/redis_stop.sh"
  35. }

Redis 状态检测脚本。

redis_check  Redis 状态检测;

  1. #!/bin/bash
  2. ports=(6379 6389 6399)
  3. port_num=${#ports[@]}
  4. pong_num=
  5. LOGFILE="/opt/keepalived/keepalived-redis-check.log"
  6. echo '-----------------' >> $LOGFILE
  7.  
  8. for port in ${ports[*]}
  9. do
  10. if [ $port -eq ] ;then
  11. ALIVE=`/usr/bin/redis-cli -p $port -h 172.16.2.56 -a tkfJfnMjvniitHDG PING`
  12. else
  13. ALIVE=`/usr/bin/redis-cli -p $port -h 172.16.2.56 -a ffdca1b6f2d4c6d4 PING`
  14. fi
  15. echo "[CHECK]" >> $LOGFILE
  16. date >> $LOGFILE
  17. if [ "$ALIVE" == "PONG" ];then
  18. pong_num=$[$pong_num+]
  19. echo "Success: redis-cli -p $port PING $ALIVE" >> $LOGFILE >&
  20. else
  21. echo "Failed:redis-cli -p $port PING $ALIVE " >> $LOGFILE >&
  22. fi
  23. done
  24.  
  25. if [ $port_num -eq $pong_num ];then
  26. echo "check is ok" >> $LOGFILE
  27. exit
  28. else
  29. echo "check is error" >> $LOGFILE
  30. exit
  31. fi

master 检测;

  1. #!/bin/bash
  2. ports=( )
  3. port_num=${#ports[@]}
  4. LOGFILE="/opt/keepalived/keepalived-redis-state.log"
  5. echo '-------------' >> $LOGFILE
  6. for port in ${ports[*]}
  7. do
  8. echo "[master]" >> $LOGFILE
  9. date >> $LOGFILE
  10. echo "Being master...." >> $LOGFILE >&
  11. echo "Run MASTER cmd ..." >> $LOGFILE >&
  12. echo "Run -p $port SLAVEOF NO ONE cmd ..." >> $LOGFILE
  13. if [ $port -eq ];then
  14. /usr/bin/redis-cli -h 172.16.2.56 -a -p $port slaveof no one >> $LOGFILE >&
  15. else
  16. /usr/bin/redis-cli -h 172.16.2.56 -a -p $port slaveof no one >> $LOGFILE >&
  17. fi
  18. done

backup 检测;

  1. #!/bin/bash
  2. ports=( )
  3. port_num=${#ports[@]}
  4. LOGFILE="/opt/keepalived/keepalived-redis-state.log"
  5. other_ip="172.16.2.57"
  6. echo '----------------' >> $LOGFILE
  7. for port in ${ports[*]}
  8. do
  9. echo "[backup]" >> $LOGFILE
  10. date >> $LOGFILE
  11. echo "Being backup...." >> $LOGFILE >&
  12. echo "Run BACKUP cmd ..." >> $LOGFILE >&
  13. echo "Run -p $port SLAVEOF $other_ip cmd ..." >> $LOGFILE
  14. if [ $port -eq ];then
  15. /usr/bin/redis-cli -h 172.16.2.56 -p $port -a slaveof $other_ip $port >> $LOGFILE >&
  16. else
  17. /usr/bin/redis-cli -h 172.16.2.56 -p $port -a slaveof $other_ip $port >> $LOGFILE >&
  18. fi
  19. done

redis_fault  服务错误检测;

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

redis 服务停止检测;

  1. #!/bin/bash
  2. LOGFILE=/opt/keepalived/keepalived-redis-state.log
  3. echo "[stop]" >> $LOGFILE
  4. 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. shell中的source和直接执行sh的区别

    首先我们知道我们执行shell有这么几种方法 1. sh/bash使用其内置的命令集来执行一些命令,例如如下 sh demo.sh bash demo.sh 2. 使用./或者/$SHELLPATH/ ...

  2. A1021. Deepest Root

    A graph which is connected and acyclic can be considered a tree. The height of the tree depends on t ...

  3. 截取 还没有读的txt章节 生成新的文件

    package file; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; imp ...

  4. 关于继承的基本知识,方法重写,final和abstract的使用, 动态绑定和静态绑定的知识

    一.继承: 涉及关键字: extends(继承) super final abstract 特点: 1.类与类之间可以用 XX是XX来描述 , 那么他们之间就存在继承关系.  2.Java中不支持多继 ...

  5. pytest 8 参数化parametrize

    pytest.mark.parametrize装饰器可以实现用例参数化 1.以下是一个实现检查一定的输入和期望输出测试功能的典型例子 import pytest @pytest.mark.parame ...

  6. eclipse导出svn源码,如何转化为项目

    1.先导出 2.点击项目右键,选“属性” 3.选择project facets 4.添加对应的支持 5.可进行进一步配置,设置name,然后点击确定等待完成

  7. gradle下载jar包

    使用IntelliJ IDEA+gradle的时候,有时用到的是公司的jar包,如果在外面就无法访问仓库,因此试着下载所需要的jar包到电脑上.然后发现原来gradle已经缓存到本地上了,可用如下方式 ...

  8. MySQL权限授权认证详解

    MySQL权限授权认证详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL权限系统介绍1>.权限系统的作用是授予来自某个主机的某个用户可以查询.插入.修改.删除 ...

  9. Windows下的包管理工具-Scoop

    关于scoop的介绍 https://www.jianshu.com/p/bb0ba62b519c https://blog.csdn.net/fcymk2/article/details/86653 ...

  10. Hbase记录-备份与恢复方案推荐

    热备份和冷备份参考方案,如在生产环境,请结合业务情况考虑