Redis主从架构
问题:redis down重启后,能恢复key值,时间会有延迟,down机之间的值将会丢失。
实验环境,主从做在一台服务器上,利用不同端口。
解决方案:redis主从至今还不算完善,我们利用redis主从主要做redis备份,master宕机后,实现10s内尽可能的恢复key值,主主要做读写,实现快速读写,不做任何备份方式,从就简单实用rdb方式实现备份。
思路原理:
redis有两种持久化方式,rdb 与aof模式,考虑到aof模式增长过快,恢复比较缓慢,就在从上做rdb模式,主down之后,脚本检查主的状态,之后在从上做bgsave,把从上的rdb文件copy到主的data目录里,重新启动主。通过判断主上key值得数量,是否跟从上的数量一样,来判断是否恢复正常,然后就可以实现key值得完全恢复。备份方式为,一个小时copy一次从上的rbd文件,做一个小时一次的备份。
脚本的思路 主要实现上述思路原理,脚本有点别扭,2做了主,1做的redis从。别扭,实验,没时间修改
#!/bin/bash
DATE=`date %Y%m%d%M%s`
REDIS_DIR=/usr/local/redis
REDIS2_DIR=/usr/local/redis2
BIN_DIR=/usr/local/redis/bin
DATA1_DIR=/usr/local/redis/data
DATA2_DIR=/usr/local/redis2/data
PORT1=6378
PORT2=6379
function BACKUP_RDB {
ps -ef |grep $PORT2 >/dev/null
if [ $? -eq 0 ];then
${BIN_DIR}/redis-cli -p $PORT2 bgsave >/dev/null
if [ $? -eq 0 ];then
echo -e "