您的位置:首页 > 数据库 > Redis

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

2011-07-28 18:28 597 查看

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,取最新值


优化的方法大概就是这样。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: