已经开启RDB的情况下开启混合模式

来源:5-4 Redis持久化RBD与AOF的选择及容灾备份

海特圣山彼岸花

2021-04-16

老师您好:

1、笔记中开启混合模式的命令应该是 aof-use-rdb-preamble yes 吧?

2、对于混合持久化,我有一个问题:

测试时配置如下

# 放行访问IP限制
bind 0.0.0.0
# 后台启动
daemonize yes
# 日志存储目录及日志文件名
logfile "/home/cty/app/redis/log/redis.log"
# rdb数据文件名
dbfilename dump.rdb
# rdb数据文件和aof数据文件的存储目录
dir /home/cty/app/redis/data
# 设置密码
requirepass 123456

# 5秒内如果有一个key改动,则发起快照保存
save 5 1

# 开启AOF
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-min-size 64mb
auto-aof-rewrite-percentage 100
aof-load-truncated yes

# 开启混合模式
aof-use-rdb-preamble yes

我保留了之前生成的500万数据(dump.rdb文件),然后kill掉redis,执行redis-server。

发现dbsize结果为0。

我尝试set了一个数据,发现dump.rdb被覆盖,等于500万数据丢失。

所以我想问老师,在真正的生产环境时如何正确操作的,是否是:
1)修改配置文件中的【appendonly】和【aof-use-rdb-preamble】为yes;
2)不要重启redis
3)使用redis-cil输入config set appendonly yes和config set appendonly aof-use-rdb-preamble 为yes;

因为我发现在之前已经开启RDB的情况下,这样开启混合模式才能保留原有的数据。

写回答

1回答

InCowboy

2021-04-17

是的,如果一开始没有启用的话就动态去修改,而且开启了混合持久化,在4.0之前版本都不识别该aof文件,同时由于前部分是RDB格式,所以这个也是我们工作中需要注意的。

0
1
海特圣山彼岸花
谢谢老师哈~
2021-04-18
共1条回复

高级Redis进阶课 解决Redis实际问题+掌握Redis6.x特性

以项目整合Redis各种场景,从此轻松应对各类Redis难题

934 学习 · 353 问题

查看课程