RDB 持久化简介

本页面简要介绍了 Memorystore for Redis Cluster 的 Redis 数据库 (RDB) 持久化。

RDB 持久化通过将快照保存到持久性存储空间来保护数据。您可以通过选择快照间隔(最短 1 小时,最长 24 小时)来选择这些快照的频率。

具有副本的节点会优先从副本恢复数据。但是,如果主实例和副本同时发生故障,则节点会从最新快照中恢复。

如果您纵向扩容集群,则在下一个预定快照时间之前,快照不会包含新分片。如果您为集群启用或停用持久性,则集群可能需要执行维护。如需详细了解如何启用和停用 RDB 持久化,请参阅管理持久化。

RDB 持久化不会增加额外的结算费用。此功能非常适合在恢复后可以接受少量数据过时的用例。由于 Memorystore for Redis Cluster 使用快照进行自动恢复,因此快照不适用于手动恢复。此外,Memorystore for Redis Cluster 仅保留最新快照。

Memorystore for Redis Cluster 还支持 AOF 持久化,但您必须选择 AOF 或 RDB 持久化。您无法同时启用这两种持久化模式。 如需详细了解如何在持久化模式之间进行选择,请参阅持久化概览。

为了获得尽可能高的可用性,我们建议您除了启用持久性之外,还使用高可用性集群。如需了解详情,请参阅高可用性和副本。

快照时间安排

快照开始时间和快照间隔决定了快照时间表。您可以设置的快照间隔为 1h、6h、12h 和 24h。例如,如果您将开始时间设置为凌晨 4 点,并将时间间隔设置为 1 小时,则快照会在您启用 RDB 持久化的当天凌晨 4 点开始,之后每小时继续一次。

Memorystore for Redis Cluster 会在世界协调时间 (UTC) 时区评估快照时间表。 因此,如果您的时区遵循夏令时 (DST) 更改,则快照时间表作业的本地开始时间会在 DST 开始和结束时向前或向后移动 1 小时。

暂停快照

您可能需要暂时暂停截取 RDB 快照。例如,您可以暂停快照,以防止在关键事件期间影响性能,或排查性能问题。

如果您通过将开始时间设置为未来时间来暂停快照,则 Memorystore for Redis Cluster 会保留最后一个快照。如果节点发生故障且无法从副本恢复数据,则该节点会使用此快照来恢复数据。如需恢复快照,请将快照时间表调整为您希望下一次截取快照的时间。如需了解详情,请参阅调整 RDB 快照间隔。

恢复行为

Memorystore for Redis Cluster 节点会作为主要恢复机制故障切换到副本,而不是从快照加载数据。但是,如果节点发生故障且无法从副本中恢复数据,则该节点会从快照中恢复数据。

恢复时的数据一致性

启用 RDB 持久性后,集群会尽力按指定间隔创建快照。由于 RDB 快照是时间点备份,因此您的应用必须能够容忍 Memorystore for Redis Cluster 恢复数据后一定数量的数据过时。

快照可能会因多种原因而失败。如果快照在多个时间间隔内连续失败,则最后一个可用快照可能会任意过时。

从快照恢复数据时,最坏情况下的数据过时时间是自上一个良好快照开始以来指定时间间隔以及将下一个快照保存到存储空间的时间的总和。如果发生恢复突发事件,请使用 rdb_save_ages 指标查看数据过时的时间范围。 如需详细了解此指标,请参阅持久性指标。

恢复时间

如果节点发生故障,需要从快照中恢复数据,则该节点在恢复期间不可用。恢复时间取决于快照的大小。

快照故障

Memorystore for Redis Cluster 会立即重试任何失败的快照,重试间隔时间采用指数退避算法,范围为 5 到 300 秒。如果发生恢复,则连续快照故障会增加数据过时。

恢复失败

恢复故障的情况很少见,但可能会发生。如果发生恢复故障,则节点会重复尝试从快照恢复数据,直到恢复成功。

监控快照

我们建议监控快照并为失败的快照设置提醒。 失败的快照可能表明过载的节点可能仍然难以恢复数据。

如需详细了解 RDB 持久化的最佳实践,请参阅持久化最佳实践。如需查看可用于监控快照的指标列表,请参阅持久性指标。

性能影响

您可以使用 Cloud Monitoring 查看 CPU 用量和内存用量等指标,从而监控快照对集群的性能影响。