为什么我的 Redis 备份文件 (.rdb) 始终小于 ElastiCache 集群中的 BytesUsedForCache 指标?

上次更新时间:2020 年 1 月 7 日

我使用的是 Amazon ElastiCache for Redis。为什么我的 Redis 备份文件 (.rdb) 始终小于集群中的 BytesUsedForCache 指标?

解决方案

BytesUsedForCache 指标包含适用于所有用途的字节,包括实际密钥大小、标头和内存碎片。在 Redis 被动或主动异步删除过期密钥之前,它们也会消耗内存。有关更多信息,请参阅 Redis.io 网站上的过期 密钥秒数 - Redis 如何让密钥过期

ElastiCache 使用分支和无分支备份流程。两种流程均会转储磁盘上的所有密钥,以创建 .rdb 文件。.rdb 文件不会使用指针或过期密钥,并且它也不会处理内存碎片、元数据或缓冲区。这意味着备份文件的大小小于 BytesUsedForCache 指标。例如,您的 Redis 集群可能将 BytesUsedforCache 显示为 15 GiB,并且还会显示在集群上出现繁重的读/写请求时发起的备份。成功完成备份之后,备份缓存大小可能在 10 或 12 GiB 之间,而不是 15 GiB,因为备份不包含过期密钥、指针等。


这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?