redis的RDB文件和AOF文件恢复数据的区别

dump.rdb文件
redis.conf配置文件
save 900 1 900秒内有 1 条记录被改动保持dump.rdb文件
save 300 10 300 秒内有 10 条记录被改动保持dump.rdb文件
save 60 10000 60 秒内有 100000 条记录被改动保持dump.rdb文件
先创建dump.rdb文件出来,我这里是主动保存

127.0.0.1:6379> set m 1
OK
127.0.0.1:6379> SAVE
OK
之后再执行
127.0.0.1:6379> set a 2
OK
127.0.0.1:6379> set b 2
OK

然后把redis的服务器kill 杀了(让redis异常退出)
然后启动redis,查看keys * ,发现没有保存的数据丢失了,因为后面的a和b没有到了保存文件的要求,导致dump.rdb文件没有更新,所以之后加入的数据丢失

127.0.0.1:6379> KEYS *
1) “m”

aof文件
redis.conf配置文件
appendonly yes 开启aof持久化
appendfsync everysec 每秒记录一次
在 Redis 2.2 或以上版本,可以在不重启的情况下,从 RDB 切换到 AOF :

redis-cli config set appendonly yes
redis-cli config set save “”

如果你愿意的话, 也可以同时使用 RDB 和 AOF 这两种持久化功能
重要:别忘了在 redis.conf 中打开 AOF 功能!否则服务器重启后,之前通过 CONFIG SET 命令设置的配置就会被遗忘, 程序会按原来的配置来启动服务器。

127.0.0.1:6379> set a 1
127.0.0.1:6379> set b 1
[root@shenzhen redis]# cat appendonly.aof
*2
$6
SELECT
$1
0
*3
$3
set
$1
a
$1
1
*3
$3
set
$1
b
$1
1
*3

然后把redis的服务器kill 杀了(让redis异常退出)
然后启动redis,查看keys * ,发现数据都在,因为使用了appendonly.aof持久化

区别
AOF 文件的体积通常要大于 RDB 文件的体积,AOF 的速度可能会慢于 RDB,AOF 文件容易读懂,AOF 文件比RDB 文件保持效率高。

分析对比两种方式并做了测试后,发现这是两种不同风格的持久化方式,那么应该如何选择呢?
对于企业级的中大型应用,如果不想牺牲数据完整性但是又希望保持高效率,那么你应该同时使用 RDB 和 AOF 两种方式;
如果你不打算耗费精力在这个地方,只需要保证数据完整性,那么优先考虑使用 AOF 方式;
RDB 方式非常适合大规模的数据恢复,如果业务对数据完整性和一致性要求不高,RDB是很好的选择。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值