redis 持久化配置 无缝从rdb切换到aof 安全保留数据
redis 持久化配置 无缝从rdb切换到aof 安全保留数据
redis默认持久化配置rdb,但是如果贸然切换配置到aof方式,重启会导致数据丢失
问题
redis默认持久化配置rdb,但是如果贸然切换配置到aof方式,重启会导致数据丢失
如果数据不重要,都是缓存数据则没什么,如果是重要临时数据,不能丢失的情况,则需要特殊处理,保证数据不丢失
根本原因
rdb
方式默认将数据持久化存储到dump.rdb
文件下aof
方式默认将数据写操作记录到appendonly.aof
文件下- 如果同时开启2种方式,重启会默认加载
aof
方式 - redis默认只开启
rdb
- 综上,如果你是默认
rdb
方式,然后贸然切换到aof
,重启后会读取aof
文件,但是这个时候aof
文件是空的,则会导致redis被清空
解决方法
原理:在redis控制台动态配置打开aof方式,在shutdown安全退出后,自动记录了当前所有记录到aof文件,再修改redis文件配置打开aof方式,启动redis时会自动加载之前安全退出保存的aof数据
进入redis
redis-cli
redis中动态修改配置并退出
127.0.0.1:6379> save # 收到触发rdb存储数据
OK
127.0.0.1:6379> CONFIG SET appendonly yes # 动态配置
OK
127.0.0.1:6379> save
OK
127.0.0.1:6379> shutdown save # 安全退出并存储数据
not connected>
修改redis配置,打开aof
vim redis.conf
appendonly no #aof方式默认关闭
启动redis
service redis start