千家信息网

Redis合理配置持久化策略有哪些

发表于:2024-12-13 作者:千家信息网编辑
千家信息网最后更新 2024年12月13日,这篇文章给大家分享的是有关Redis合理配置持久化策略有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。合理配置持久化策略Redis 支持两种持久化策略,RDB 和 AO
千家信息网最后更新 2024年12月13日Redis合理配置持久化策略有哪些

这篇文章给大家分享的是有关Redis合理配置持久化策略有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

合理配置持久化策略

Redis 支持两种持久化策略,RDB 和 AOF。

RDB 通过 fork 子进程,生成数据快照,二进制格式。

AOF 是增量日志,文本格式,通常较大。会通过 AOF rewrite 重写日志,节省空间。

除了手动执行「BGREWRITEAOF」命令外,以下 4 点也会触发 AOF 重写

  1. 执行「config set appendonly yes」命令

  2. AOF 文件大小比例超出阈值,「auto-aof-rewrite-percentage」

  3. AOF 文件大小绝对值超出阈值,「auto-aof-rewrite-min-size」

  4. 主从复制完成 RDB 加载

RDB 和 AOF,都是在主线程中触发执行。虽然具体执行,会通过 fork 交给后台子进程。但 fork 操作,会拷贝进程数据结构、页表等,当实例内存较大时,会影响性能。

AOF 支持以下三种策略。

  1. appendfsync no:由操作系统决定执行 fsync 时机。 对 Linux 来说,通常每 30 秒执行一次 fsync,将缓冲区中的数据刷到磁盘上。如果 Redis qps 过高或写 big key,可能导致 buffer 写满,从而频繁触发 fsync。

  2. appendfsync everysec: 每秒执行一次 fsync。

  3. appendfsync always: 每次「写」会调用一次 fsync,性能影响较大。

AOF 和 RDB 都会对磁盘 IO 造成较高的压力。其中,AOF rewrite 会将 Redis hash 表所有数据进行遍历并写磁盘。对性能会产生一定的影响。

线上业务 Redis 通常是高可用的。如果对缓存数据丢失不敏感。考虑关闭 RDB 和 AOF 以提升性能。

如果无法关闭,有以下几点建议:

  1. RDB 选择业务低峰期做,通常为凌晨。保持单个实例内存不超过 32 G。太大的内存会导致 fork 耗时增加。

  2. AOF 选择 appendfsync no 或者 appendfsync everysec

  3. AOF auto-aof-rewrite-min-size 配置大一些,如 2G。避免频繁触发 rewrite。

  4. AOF 可以仅在从节点开启,减轻主节点压力。

根据本地测试,不开启 AOF,写性能大约能提升 20% 左右。

感谢各位的阅读!关于"Redis合理配置持久化策略有哪些"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

0