问题
redis默认持久化配置rdb,但是如果贸然切换配置到aof方式,重启会导致数据丢失
根本原因
- rdb方式默认将数据持久化存储到dump.rdb文件下
- aof方式默认将数据写操作记录到appendonly.aof文件下
- 如果同时开启两种方式,重启会默认加载aof文件
- Redis默认只开启rdb
- 综上,如果默认是rdb方式,然后贸然切换到aof,重启会读取aof文件,但这个时候aof文件是空的,则会导致Redis被清空
解决方法
在redis控制台动态配置打开aof方式,在shutdown安全退出后,自动记录了当前所有记录到aof文件,再修改redis文件配置打开aof方式,启动redis时会自动加载之前安全退出保存的aof数据
-
进入Redis
./redis-cli
-
动态修改配置并退出
save # 收到触发rdb存储数据 CONFIG SET appendonly yes # 动态配置 save shutdown save # 安全退出并存储数据
-
修改Redis配置,打开aof
appendonly yes
-
启动Redis
service redis start