gersdqw 发表于 2015-3-10 08:48:31

keepalived+redis做双机热备

                      keepalived配置文件   主从配置一样,需要修改优先级

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
global_defs {
   router_id REDIS05
}
      vrrp_instance VI_5 {
                state BACKUP
                interface bond0
                virtual_router_id 85
                priority 150
                authentication {
                           auth_type PASS
                           auth_pass redis10
                }
                advert_int 2
                virtual_ipaddress {
                  1.1.1.1
                }
                notify_master /data/scripts/redis_master.sh
                notify_backup /data/scripts/redis_backup.sh
                notify_fault/data/scripts/redis_fault.sh
                notify_stop   /data/scripts/redis_stop.sh
      }




四个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
# cat redis_backup.sh
#!/bin/bash
         
REDISCLI="/data/server/redis/bin/redis-cli"
LOGFILE="/data/logs/redis/keepalived-redis-state.log"
         
echo "" >> $LOGFILE
date >> $LOGFILE
echo "Being slave...." >> $LOGFILE 2>&1
#sleep 25
echo "Run SLAVEOF cmd ..." >> $LOGFILE
$REDISCLI -p 6359 SLAVEOF 1.1.1.1 6359 >> $LOGFILE2>&1




# catredis_fault.sh
#!/bin/bash
LOGFILE="/data/logs/redis/keepalived-redis-state.log"
echo "" >> $LOGFILE
date >> $LOGFILE

# cat redis_master.sh
#!/bin/bash
         
REDISCLI="/data/server/redis/bin/redis-cli"
LOGFILE="/data/logs/redis/keepalived-redis-state.log"
         
echo "" >> $LOGFILE
date >> $LOGFILE
echo "Being master...." >> $LOGFILE 2>&1
echo "Run SLAVEOF NO ONE cmd ..." >> $LOGFILE
$REDISCLI -p 6359 SLAVEOF NO ONE >> $LOGFILE2>&1



# cat redis_stop.sh
#!/bin/bash
LOGFILE="/data/logs/redis/keepalived-redis-state.log"
echo "" >> $LOGFILE
date >> $LOGFILE




附带一个备份脚本

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
#global dir variables
dir="/data/server/redis/data/"
backup_dir="/data/backups/redis/"
#global backup file name
file_name="redis-jzpush01-6359-dump.rdb"
#section backup time
section=`date +%y%m%d%H`
#execute backup
/data/server/redis/bin/redis-cli -p 6359 BGSAVE
/bin/cp -f $dir/$file_name $backup_dir/$file_name.${section}
/usr/bin/find $backup_dir -type f -ctime +2 | xargs -n 1 rm -f





                   

页: [1]
查看完整版本: keepalived+redis做双机热备