Redis开启AOF持久化数据丢失问题

本文探讨了在Redis中启用AOF(Append Only File)后导致的数据丢失问题。当重启Redis时,由于AOF的优先级高于RDB快照,可能导致先前的数据丢失。为避免数据丢失,建议在写入数据后使用`bgrewriteaof`命令更新AOF文件,然后重启Redis。这样,重启后数据将根据最新的AOF内容恢复。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、过程演示

登录redis,并写入测试数据

redis-cli -h 172.16.254.124 -p 6379 -a redis
172.16.254.124:6379> set handong dongge
OK
172.16.254.124:6379> set city1 beijing1
OK
172.16.254.124:6379> set city2 beijing2
OK
172.16.254.124:6379> set city3 beijing3
OK
172.16.254.124:6379> set city4 beijing4
OK

查看测试数据

172.16.254.124:6379> keys *
1) "city3"
2) "city4"
3) "handong"
4) "city2"
5) "city1"

编辑配置文件redis.conf,开启AOF,并重启redis

查看所有key

172.16.254.124:6379> keys *
(empty list or set)

发现先前写入的测试数据都丢失了。

这是由于启用AOF之后,重启Redis,默认就会从aof恢复数据,就会忽略dump.rdb中的数据,就会造成重启之前数据的丢失

那如何避免开启AOF之后数据丢失呢?

写入测试数据:

172.16.254.124:6379> set city1 beijing1
OK
172.16.254.124:6379> set city2 beijing2
OK
172.16.254.124:6379> set city3 beijing3
OK
172.16.254.124:6379> set city4 beijing4
OK
172.16.254.124:6379> keys *
1) "city2"
2) "city4"
3) "city3"
4) "city1"

在redis-cli执行bgrewriteaof

172.16.254.124:6379> bgrewriteaof
Background append only file rewriting started

编辑配置文件redis.conf,开启AOF,并重启redis

查看数据

172.16.254.124:6379> keys *
1) "city1"
2) "city2"
3) "city4"
4) "city3"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值