关于keepalived的详细介绍,请移步本人相关博客:http://wangfeng7399.blog.51cto.com/3518031/1405785

功能 ip地址 安装软件
主redis 10.13.6.13 redis,keepalived
从redis 10.13.6.16 redis,keepalived
VIP 10.13.6.17  

一、redis主从搭建

1.redis安装

本文通过yum源的安装方式来安装(需要配置epel源),也可以通过源码编译的方式来安装

1
2
[root@P2Pp_Red01 ~]# yum install -y redis
[root@P2Pp_Red02 ~]# yum install -y redis

2.修改配置文件

①、主redis需要修改的文件及内容

1
2
3
[root@P2Pp_Red01 ~]# vi /etc/redis.conf
bind 0.0.0.0
其余都可以安装默认状态

②、从redis需要修改的文件及内容

1
2
3
[root@P2Pp_Red02 ~]# vi /etc/redis.conf
bind 0.0.0.0
slaveof 10.13.6.13 6379 //指定主redis的地址与端口

3.查看主从状态

1
2
3
4
5
6
7
8
9
[root@P2Pp_Red01 ~]# redis-cli INFO |grep role -A 3
role:master
slave0:10.13.6.16,45270,online
db0:keys=6,expires=0
[root@P2Pp_Red02 ~]#  redis-cli INFO |grep role -A 3
role:slave
master_host:10.13.6.13
master_port:6379
master_link_status:up

二、使用keepalived对redis做高可用

1.安装keepalived,两台机器都需要安装

1
2
[root@P2Pp_Red01 ~]# yum install -y keepalived
[root@P2Pp_Red02 ~]# yum install -y keepalived

2.准备配置文件

①、主redis的配置文件,关于各行代表的意思,请移步我的另外一篇文档,链接见文章开头

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
[root@P2Pp_Red01 scripts]# vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
 
global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 10.13.4.17
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
vrrp_script chk_redis {
    script "killall -0 redis-server"
    interval 2
}
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id  100
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        10.13.6.17
    }
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
 
}
~[root@P2Pp_Red01 ~]# vi /etc/keepalived/scripts/redis_master.sh 
 
#!/bin/bash
REDISCLI="/usr/bin/redis-cli"
LOGFILE="/var/log/keepalived-redis-state.log"
 
echo "[master]" >> $LOGFILE
date >> $LOGFILE
echo "Being master...." >> $LOGFILE 2>&1
 
echo "Run SLAVEOF cmd ..." >> $LOGFILE
$REDISCLI SLAVEOF 10.13.4.13 6379 >> $LOGFILE  2>&1
sleep 10
#延迟10秒以后待数据同步完成后再取消同步状态
 
echo "Run SLAVEOF NO ONE cmd ..." >> $LOGFILE
$REDISCLI SLAVEOF NO ONE >> $LOGFILE 2>&1
~
[root@P2Pp_Red01 ~]# vi /etc/keepalived/scripts/redis_backup.sh 
 
#!/bin/bash
REDISCLI="/usr/bin/redis-cli"
LOGFILE="/var/log/keepalived-redis-state.log"
 
echo "[backup]" >> $LOGFILE
date >> $LOGFILE
echo "Being slave...." >> $LOGFILE 2>&1
 
sleep 15
#延迟15秒待数据被对方同步完成之后再切换主从角色
echo "Run SLAVEOF cmd ..." >> $LOGFILE
$REDISCLI SLAVEOF 10.13.4.13 6379 >> $LOGFILE  2>&1
[root@P2Pp_Red01 scripts]# vi /etc/keepalived/scripts/redis_stop.sh 
 
#!/bin/bash
 
LOGFILE=/var/log/keepalived-redis-state.log
 
echo "[stop]" >> $LOGFILE
date >> $LOGFILE
[root@P2Pp_Red01 scripts]# vi /etc/keepalived/scripts/redis_fault.sh 
 
#!/bin/bash
GFILE=/var/log/keepalived-redis-state.log
 
echo "[fault]" >> $LOGFILE
date >> $LOGFILE
 
~

②、准备从redis的配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
[root@P2Pp_Red02 ~]# vi /etc/keepalived/keepalived.conf
 
! Configuration File for keepalived
 
global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 10.13.4.13
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
vrrp_script chk_redis {
    script "killall -0 redis-server"
    interval 1
}
vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 100
    priority 99
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        10.13.6.17
    }
#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
 
[root@P2Pp_Red02 ~]# vi /etc/keepalived/scripts/redis_master.sh 
 
#!/bin/bash
REDISCLI="/usr/bin/redis-cli"
LOGFILE="/var/log/keepalived-redis-state.log"
 
echo "[master]" >> $LOGFILE
date >> $LOGFILE
echo "Being master...." >> $LOGFILE 2>&1
 
echo "Run SLAVEOF cmd ..." >> $LOGFILE
$REDISCLI SLAVEOF 10.13.6.13 6379 >> $LOGFILE  2>&1
sleep 10
#延迟10秒以后待数据同步完成后再取消同步状态
 
echo "Run SLAVEOF NO ONE cmd ..." >> $LOGFILE
$REDISCLI SLAVEOF NO ONE >> $LOGFILE 2>&1
~
[root@P2Pp_Red02 ~]# vi /etc/keepalived/scripts/redis_backup.sh 
 
#!/bin/bash
REDISCLI="/usr/bin/redis-cli"
LOGFILE="/var/log/keepalived-redis-state.log"
 
echo "[backup]" >> $LOGFILE
date >> $LOGFILE
echo "Being slave....
 
sleep 15
#延迟15秒待数据被对方同步完成之后再切换主从角色
echo "Run SLAVEOF cmd ..." >> $LOGFILE
$REDISCLI SLAVEOF 10.13.6.13 6379 >> $LOGFILE  2>&1
其余的两个文件跟主redis是一样的

本处将不再给模拟故障,但是测试时通过的,现在已经在生产环境中使用

本文出自 “IT民工--小枫” 博客,请务必保留此出处http://wangfeng7399.blog.51cto.com/3518031/1591275

基于keepalived对redis做高可用配置---转载的更多相关文章

  1. (转)基于keepalived搭建MySQL的高可用集群

    基于keepalived搭建MySQL的高可用集群  原文:http://www.cnblogs.com/ivictor/p/5522383.html MySQL的高可用方案一般有如下几种: keep ...

  2. 基于keepalived搭建MySQL的高可用集群

    MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,MMM,Heartbeat+DRBD,PXC,Galera Cluster 比较常用的是keepalived+双主,MHA和 ...

  3. Nginx+keepalived实现负载均衡高可用配置

    1. 什么是负载均衡高可用 nginx作为负载均衡器,所有请求都到了nginx,可见nginx处于非常重点的位置,如果nginx服务器宕机后端web服务将无法提供服务,影响严重. 为了屏蔽负载均衡服务 ...

  4. nginx+keepalived互为主主高可用配置

    和nginx主从安装配置都一样   就是配置文件 多加个vip  里面具体要改的 请看下面的配置文件 直接master1上keepalived.conf配置文件内容: ! Configuration ...

  5. Redis Sentinel高可用配置及C#访问

    本文环境如下: 操作系统:ubuntu-14.04.1-desktop-amd64 Redis:2.8.19 如果使用虚拟机则将每台的网络设置为桥接,否则他们之间能连上,局域网连不上. 系统设计如图: ...

  6. MySQL基于域名做高可用切换(Consul初试)

    一,Consul功能介绍 服务发现 - Consul的客户端可用提供一个服务,比如 api 或者mysql ,另外一些客户端可用使用Consul去发现一个指定服务的提供者.通过DNS或者HTTP应用程 ...

  7. Keepalived+Nginx搭建主从高可用并带nginx检测

    应用环境:部分时候,WEB访问量一般,或者测试使用,利用Keepalived给Nginx做高可用即可满足要求. 测试环境:   搭建步骤: 1. 安装软件 在Nginx-A和Nginx-B上: ~]# ...

  8. MariaDB+Keepalived双主高可用配置MySQL-HA

    利用keepalived构建高可用MySQL-HA,保证两台MySQL数据的一致性,然后用keepalived实现虚拟VIP,通过keepalived自带的服务监控功能来实现MySQL故障时自动切换. ...

  9. lvs+keepalived做高可用方案1

    本文我们主要讲解的是LVS通过keepalived来实现负载均衡和高可用,而不是我们第三篇文章介绍的通过手动的方式来进行配置.通过脚本的方式来显示RS节点的健康检查和LVS的故障切换.此文会通过一个实 ...

随机推荐

  1. JVM 学习笔记(二)

    JVM 堆中几乎存放着java中所有的对象实例,在在垃圾回收前先要判断对象是否已死,这里对对象的判断主要有: 1.  引用计数法 给对象中添加一个引用计数器,每当有一个地方引用他时,计数器就加1:当引 ...

  2. ACMer程序员智力拾遗

           浏览网页偶得,遂记录下来,每天进步一点点--        博客园真是个不错的平台,今天我让师姐也注册了--        学会分享吧,孩子们-- 一.编程中无穷大量的设置        ...

  3. CAS单点登录配置[4]:客户端配置

    本节介绍一下客户端如何配置,客户端配置没有服务端那么复杂... 客户端Tomcat配置 1 首先确认证书文件已经拷贝到Tomcat的目录下,我们新建两个客户端的web应用,分别命名为Client1,C ...

  4. python3使用requests爬取新浪热门微博

    微博登录的实现代码来源:https://gist.github.com/mrluanma/3621775 相关环境 使用的python3.4,发现配置好环境后可以直接使用pip easy_instal ...

  5. CopyOnWriteArrayList与Collections.synchronizedList的性能对比

    列表实现有ArrayList.Vector.CopyOnWriteArrayList.Collections.synchronizedList(list)四种方式. 1 ArrayList Array ...

  6. bzoj1093

    首先缩点然后半连通其实就是缩点后节点数最多的链注意这里一定是一条链才一定是半连通然后重建图拓扑排序上做dp即可 type node=record po,next:longint; end; ..] o ...

  7. bzoj1055

    不难想到是一个布尔型dp, 不难想到用f[i,j,k]表示区间[i,j]能否变为字母k 不难想到对于f[i,j,k],拆[i,j]成两个区间,然后穷举k的每一个变换来判断 感觉记忆化搜索写的比较顺,就 ...

  8. HDU-1045 Fire Net

    http://acm.hdu.edu.cn/showproblem.php?pid=1045 Fire Net Time Limit: 2000/1000 MS (Java/Others)    Me ...

  9. Android开发必知--使用View.setId的正确姿势

    这两天在写一个柱状图的自定义控件,用的直接继承ViewGroup的方式实现的,我们都知道,这是自定义控件里面最简单的一种了,有时间写个总结分享一下.这里我想说的重点是,在写这个自定义控件的时候遇到了个 ...

  10. [SAM4N学习笔记]按键程序(中断方式)

    一.准备工作:      将上一节搭建的工程复制一份,命名为"6.key interrupt".这一节主要讲如何使用SAM4N的GPIO中断功能,实现按键的中断输入. 二.程序编写 ...