redis的AOF文件格式的解析以及AOF文件的离线优化

AOF 文件格式

每个命令独立编码为一段数据。数据遵循统一协议。


每行以”\r\n”结束第一行”*”号开头,后接命令参数的个数后面跟 参数个数*2行

每两行表示一个参数。第一行”$”起始, 后跟参数的字节数第二行为参数

特殊命令处理:

① 只读命令不存入aof文件

② 多客户端情况下, 会额外添加select命令保证所选数据库一致

③ setex命令需拆分为set与expireat命令

④ expire命令需转换为expireat命令

aof文件离线优化


优化方式

经测试实际数据产生的AOF文件,大小约2GB。

①SELECT命令消除

 内含20,343,477条SET命令,5,126,406条SELECT命令,SELECT命令占比过重。
 对不同数据库进行顺序写入,减少SELECT命令至与数据库数相同。

②SET命令消除

 20,343,477条SET命令,可合并为一条MSET命令,减少命令解析耗时

③重复KEY去除

 20,343,477条SET命令,恢复测试发现数据库中实际KEY数量约13,000,000,可以去除重复KEY,取最新值


优化的方法大概就是这样。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值