备份RDB快照与恢复

Redis 默认并不会自动启用 RDB

方法一:(手动)触发RDB快照 推荐。

默认情况下,redis.conf 文件中的 RDB 相关配置

# 默认情况下

#save 900 1

#save 300 10

#save 60 10000

# 是否压缩 RDB 文件,默认开启

rdbcompression yes

# 是否计算 RDB 文件的校验和,默认开启

rdbchecksum yes

取消注释这些save注释即可开启RDB快照。

快照规则:

· 15 分钟内至少有一个键发生了变化,Redis 将创建一个 RDB 快照。

· 5 分钟内至少有 10 个键发生了变化,Redis 将创建一个 RDB 快照。

· 1 分钟内至少有 10000 个键发生了变化,Redis 将创建一个 RDB 快照

保存目录和名称见redis.conf

名称:dbfilename dump.rdb

目录:dir ./ ----》修改后服务启动报错

bug1: 已解决

正常配置了redis.conf文件后(取消save注释),无法正常触发rdb快照。

--》暂时bgsave触发快照

-----》解决:

save 3600 1
save 300 100
save 60 10000

参照定义如前:但是save 3600 1 实际指的是满足3600秒才会触发!

可以按照想要的时间间隔来配置参数。

bug2: --》可能与配置的系统脚本有关

在使用systemctl start redis时加载dir ./ 目录后无法正常加载dump.rdb文件。

使用/opt/redis/redis-6.2.14/src/redis-server启动时可以正常加载dump.rdb文件

省流版:

  1. 配置文件redis.conf取消save注释,触发规则完成备份。
  2. 定义redis.conf中dir参数(可选)或者find / -name dump.rdb 看下RDB快照保存位置注意RDB文件生成位置即为redis数据目录加载位置。
  3. save规则自动触发生成或者手动bgsave生成dump.rdb
  4. redis宕机
  5. 将想要替换的RDB(来源于手动cp备份)替换到RDB文件生成位置,重启redis即可加载RDB文件。


方法二:配置定时RDB快照   

由于生产实际,接下来都忽略定时方法。

在Linux系统上使用cron来定期执行命令:

# 在crontab中添加如下行

0 1 * * * redis-cli -h <master_ip> -p <port> bgsave && cp /var/lib/redis/dump.rdb /backup/

上面的例子会在每天凌晨1点触发一次RDB快照,并将生成的RDB文件复制到备份目录中。

示例:

0 1 * * * redis-cli -h localhost -p 6379 bgsave

这里的各个字段代表:

第一个字段 (0):分钟

第二个字段 (1):小时

第三个字段 (*):月份中的哪一天

第四个字段 (*):月份

第五个字段 (*):星期几

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值