高并发redis - 持久化备份方案

2020-03-26  本文已影响0人  coder爱唱歌

1.高并发redis - 持久化备份方案

redis几乎是我们在实际开发过程中提升效率必须用到的工具,特别在高并发场景下,
redis号称单机10w+qps,除了高qps,数据安全也是一个系统必须考虑的部分,
redis数据持久化是保证数据安全一个重要环节,所以现在就来讨论一下redis持久化相关内容。

会讨论一下以下几个方面

1、redis数据持久化的作用

缓存雪崩.png

2、redis的持久化,RDB,AOF区别,各自特点,适合什么场景

RDB

对redis数据执行周期性备份,每隔一定时间(自己设置),生成redis内存中的数据的一份完整的快照(rdb文件)
配置后生成的文件是.rdb后缀的,纯数据文件,不便于阅读。
rdb文件内容示例-二进制压缩.png

AOF

.aof后缀文件是记录每条操作指令的文件,基本可读。
现在操作系统写文件不是直接写磁盘,会先写os cache,然后操作系统每隔一秒调用fsync操作,把数据从os cache到磁盘,只有到了磁盘,数据才是安全的。
没有一条指令,就会往os cache写一条命令,然后设置每秒做一个fsync,把指令写到磁盘
如果同时有aof和rdb文件,优先使用aof文件去恢复数据,因为里面的数据比较完整。
aof文件内容.png

AOF和RDB文件对比

rdb的优点:

3、生产环境数据冷备和热备的方案

首先在生产环境,aof和rdb都是必须打开的,因为数据安全的重要性不言而喻,保证数据的最少丢失。
一般都是配套使用

相关脚本
redis_rdb_copy_daily.sh 备份30天

# 先创建当天的
cur_date=`date +%Y%m%d`
rm -rf /data/rdb_back/$cur_date
mkdir /data/rdb_back/$cur_date
cp /data/dump.rdb /data/rdb_back/$cur_date

# 然后删除一个月之前的
del_date=`date -d -1month +%Y%m%d`
rm -rf /data/rdb_back/$del_date

redis_rdb_copy_hourly.sh 48小时的

cur_date=`date +%Y%m%d%k`
rm -rf /data/rdb_backup/$cur_date
mkdir /data/rdb_backup/$cur_date
cp /data/dump.rdb /data/rdb_backup/$cur_date

del_date=`date -d -48hour +%Y%m%d%k`
rm -rf /data/rdb_backup/$del_date

添加定时器脚本

crontab -e
0 * * * * sh /usr/local/redis/copy/redis_rdb_copy_hourly.sh
0 0 * * * sh /data/redis/sh/redis_rdb_copy_daily.sh

测试sh脚本方法为,手动执行这两个sh脚本,自定义时间,看能不能在对应文件夹生成文件。

注意:这里直说冷备方案,因为后面会将主从复制和哨兵之类的,通过节点切换来完成热备份高可用。

4、用docker启动单机redis(带生产环境redis配置)

用docker起动单个redis:redis.conf放在/data/redis/redis.conf
redis.conf

#下面包括了密码,rdb的设置,aof的设置,和工作目录地址
port 6379
requirepass "123456"
dbfilename "dump.rdb"
dir "/data"
logfile "/data/redis.log"
save 300 20
appendonly yes
appendfsync everysec
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 1mb

docker启动脚本

# 挂载/data/redis/ 到 redis.conf设置的dir中
docker run -d --name redis1 -p 6379:6379 -v /data/redis/:/data/ redis redis-server /data/redis.conf

启动后进入容器,随便设置几个key,然后退出来,就会发现,/data/redis 下面就会多出了rdb,aof,log等文件


docker启动reids后多出来文件.png

5、容灾演练
模拟redis直接挂掉,然后进行数据恢复的过程。

上一篇 下一篇

猜你喜欢

热点阅读