开发者社区> 问答> 正文

AOF重写机制如何实现?

已解决

AOF重写机制如何实现?

展开
收起
游客lmkkns5ck6auu 2022-10-11 20:41:23 357 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    随着Redis的运行,AOF的日志会越来越长,如果实例宕机重启,那么重放整个AOF将会变得十分耗时,而在日志记录中,又有很多无意义的记录,比如我现在将一个数据incr一千次,那么就不需要去记录这1000次修改,只需要记录最后的值即可。所以就需要进行AOF重写。

    Redis提供了bgrewriteaof指令用于对AOF日志进行重写,该指令运行时会开辟一个子进程对内存进行遍历,然后将其转换为一系列的Redis的操作指令,再序列化到一个日志文件中。完成后再替换原有的AOF文件,至此完成。

    同样的也可以在Redis.config中对重写机制的触发进行配置:

    通过将no-appendfsync-on-rewrite设置为yes,开启重写机制;auto-aof-rewrite-percentage 100意为比上次从写后文件大小增长了100%再次触发重写;auto-aof-rewrite-min-size 64mb意为当文件至少要达到64mb才会触发制动重写。以上内容摘自《阿里开发者手册-Redis专题》电子书,点击https://developer.aliyun.com/ebook/download/7770 可下载完整版

    2022-10-12 23:45:32
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
阿里云开发者社区官方技术圈,用户产品功能发布、用户反馈收集等。
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载