AOF RDB进阶

AOF/RDB

RDB是快照文件(被压缩的二进制文件)

AOF保存的是redis指令

如:set msg “hello”

RDB保存的是key value 

AOF 保存的是整个指令

RDB:

redis服务器在启动的时候会检测RDB文件,如果RDB文件存在就会自动导入RDB文件。

AOF进行持久化的时候更新频率更高,数据更全,所以如果AOF持久化开启,会优先使用AOF来还原数据。

 

SAVE 命令和BGSAVE指令用于生产RDB文件。

SAVE会堵塞redis服务器,BGSAVE通过派生一个子进程来实现。

reids在配置文件中的save选项 设置了三个保存的条件。

save 900 1          表示900,秒内对数据库进行了至少一次修改
save 300 10        表示300,秒内对数据库进行了至少10次修改
save 60 10000    表示60,秒内对数据库进行了至少10000次修改

满足这三个条件中的任意一个就会触发BGSAVE命令

配置文件截图

 

 

      

 

 

 

AOF:保存写命令

 

AOF还原数据库,是通过创建一个不带连接的伪客户端:因为Redis命令只能在客户端上下文中执行,而载入AOF的文件时所使用的命令也是来自于AOF文件,而不是网络连接,所以服务器伪造了一个没有连接的伪客户端来执行写命令。

redis的写命令会同步到aof_buf中,然后会调用函数(flushAppendOnlyFile函数)把缓存中的数据写入到aof文件中。

AOF还通过重写这样的方式来避免数据的冗余。比如对同一个set类型的key  进行了多次的sadd 操作,就会被优化成一条 sadd 后面接好几条数据。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值