关闭AOF落盘

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

云数据库Tair(兼容 Redis)实例默认开启AOF落盘,即基于AOF(append-only file)的数据持久化。您可以通过设置appendonly参数来关闭或重新开启AOF落盘。

AOF落盘

AOF持久化是实例除了RDB备份外的另一种持久化方式。开启AOF持久化后,实例以日志的形式记录所有的写入类操作,例如SET。服务重启时,实例可以重新执行AOF文件中的操作来恢复数据。当AOF文件过大时,实例会自动执行AOF Rewrite,重组AOF文件,降低其占用的存储空间。完全兼容Redis

云数据库Tair(兼容 Redis)的AOF持久化策略为AOF_FSYNC_EVERYSEC,系统每秒将接收到的写入类命令记录到AOF,保存在磁盘中,因此又称为AOF落盘。这种策略对实例服务性能的影响较小,同时也能极大地降低意外情况下的数据损失风险。同时实例还支持AOF增量归档,避免了AOF Rewrite对服务性能的影响。

AOF落盘会带来一定写性能损耗,如果将实例应用于纯缓存场景中,对数据持久化没有需求,您可以按照本章节的说明,修改appendonly参数的值,关闭AOF落盘。

说明

AOF Rewrite触发规则:AOF文件大小超过实例内存的25%且相比上次Rewrite后(Base Rewrite)增长超过200%则触发Rewrite(空实例的Base Rewrite值为1 Byte)。

AOF落盘状态及其影响

  • 除Tair持久内存型以外,创建Tair(以及Redis开源版实例时,AOF落盘默认开启。

  • appendonly的值从yes修改为no:

    • AOF落盘立即关闭,无需重启实例。

    • 后续无法通过AOF文件恢复数据。

    • 已有的AOF日志不受影响。

    • 标准版实例中仅主节点的AOF落盘关闭,replica不受影响。

    • 集群版实例中所有数据分片的主节点均关闭AOF落盘,所有从节点不受影响。

    • 读写分离版实例中主节点与所有只读副本的AOF落盘关闭,从节点不受影响。

    • 双副本实例,关闭AOF(实际上是关闭了主库上的AOF)能够减少Rewrite对时延的影响,但是会少一份数据的保障。

  • appendonly的值从no修改为yes:

    • AOF落盘立即开启,无需重启实例。

    • 开启AOF后会定期将AOF生成的文件压缩(Rewrite),而在fork压缩进程工作时会有几十毫秒甚至一百多毫秒的抖动,这个时间与实例的内存使用量有关(Linux或Unix在fork时拷贝页表的时延)。

适用场景

  • 若您的实例开启了AOF持久化功能,出现由fork、aof_write耗时长,影响到业务的情况,建议您关闭AOF功能。

  • 若您的实例作为Cache类应用,建议您关闭AOF功能。

警告

如果使用的是Tair(企业版),且开通了DTS跨域多活服务或者数据闪回(任意时间点进行数据恢复),则不能关闭AOF。

操作步骤

  1. 访问实例列表,在上方选择地域,然后单击目标实例ID。

  2. 在左侧导航栏中,单击参数设置

  3. 在参数列表中,单击appendonly右侧操作列的修改

  4. 在弹出的对话框中完成以下步骤。

    1. 选择appendonly的值。

      可选值:

      • yes(开启AOF落盘)

      • no(关闭AOF落盘)

    2. 单击确定

相关API

API接口

说明

DescribeParameters

查询实例的配置参数和运行参数。

ModifyInstanceConfig

修改实例的参数配置。