分享一个坑

redis数据库的持久化存储有snapshot和aof两种

如果是使用过snapshot之后已经有了存储数据然后要开启aof的话,因为aof比snapshot机制的rdb文件的优先级高,redis默认会去加载第一次生成的aof的空文件,会导致全部数据未能被加载,然后如果这个时候你使用了save或bgsave或者触发了配置中的save机制,那就直接把当前的空数据库覆盖到rdb文件中了,那就可以准备收拾行李连夜坐船转到老挝,缅甸,柬埔寨了

解决方法:

命令行的动态更改,命令行的修改不会和重启服务一般去更新你的数据库,所以在你动态更改为aof机制后再执行重启会连同以前的数据一同备份进aof文件,当然动态更改后你还是需要把配置文件中的参数更改

1
2
3
4
5
6
7
8
9
10
11
12
13

# redis-cli

127.0.0.1> config set appendonly yes

OK

# vim redis.conf

appendonly yes

# systemctl restart redis.service