如何对我的 Redis 备份(.rdb)文件进行故障排除,该文件小于自行设计的 ElastiCache for Redis 集群中的 BytesUsedForCache 指标?

1 分钟阅读
0

我想对我自行设计的 ElastiCache for Redis 集群中小于 BytesUsedForCache 指标的 Redis 备份(.rdb)文件进行故障排除?

解决方法

BytesUsedForCache 指标包括所有用途的字节,例如实际密钥大小、标头和内存碎片。此外,过期的密钥还会消耗内存,直到 Redis 以被动或主动方式异步将其删除。有关更多信息,请参阅 Redis 网站上的 EXPIRE

ElastiCache 使用分叉和无分叉备份流程将所有密钥转储到磁盘上来创建 .rdb 文件。您的 .rdb 文件可能小于 BytesUsedForCache 指标,原因是该文件不使用指针或过期的密钥。该文件也不包含内存碎片、元数据和缓冲区。

例如,假设您的 Redis 集群显示 BytesUsedForCache 为 15 GiB。如果您的备份是在有大量读写请求时启动的,则缓存大小可能介于 10 GiB 到 12 GiB 之间。这是因为备份不包括过期的密钥、指针、内存碎片、元数据和缓冲区。

要确认备份的数据完整性,请使用 Redis KeyspaceDBSIZE 命令。有关更多信息,请参阅 Redis 网站上的 KeyspaceDBSIZE。将原始集群和还原集群中的密钥数量与 .rdb 文件进行比较。确保在创建快照和还原之间没有发生任何密钥插入删除驱逐操作。有关更多信息,请参阅 Redis 网站上的 Why does my replica have a different number of keys than its master instance?

**注意:**ElastiCache 备份中的缓存大小基于创建快照时 Redis 的 used_memory 参数。该大小是无压缩缓存大小的估计值。有关更多信息,请参阅 Redis 网站上的 INFO。如果您将备份快照导出到 Amazon Simple Storage Service(Amazon S3),则会导出压缩后的序列化文件大小。

相关信息

Snapshot and restore

AWS 官方
AWS 官方已更新 10 个月前