因为AOF丢失数据的概率更低,因此如果对Redis中数据的完整性要求高的话,通常会启用AOF。但是由于启用AOF之后,重启Redis,默认就会从aof恢复数据,就会忽略dump.rdb中的数据,就会造成重启之前数据的丢失,因此Redis从RDB向AOF切换的时候要使用如下步骤:
1)把redis配置文件启用AOF,比如appendonly设置为yes;建议把appendfsync设置为everysec,这样一秒同步一次,性能不会像always那样差,而且最多丢一秒钟的数据。其他配置请参考其他资料。
注意:只是修改配置文件,先不要停止或者重启redis服务。
2)Redis CLI中执行save,以便把数据全部写入dump.rdb,这是一步备份操作。以便于万一aof失败,还能到dump.rdb中把数据恢复回来。
3)Redis CLI中执行bgrewriteaof ,从而把数据写入.aof,便于下次以aof启动的时候加载数据。
4)aof写入完成后,重启Redis服务器即可。
5)如果启动后数据正常,rdb就没用了,愿意删就删。
关键的一步就是在配置启用aof并且重启服务器之前,要先执行bgrewriteaof。
网友评论