為什麼我的 Redis 備份檔案 (.rdb) 始終小於 ElastiCache 叢集中的 BytesUsedForCache 指標?

1 分的閱讀內容
0

我正在使用 Amazon ElastiCache for Redis。為什麼我的 Redis 備份檔案 (.rdb) 始終小於叢集中的 BytesUsedForCache 指標?

解決方案

BytesUsedForCache 指標包含用於所有用途的位元組。這包括實際的金鑰大小、標頭和記憶體分散。在 Redis 被動或主動以非同步方式移除過期金鑰前,過期金鑰也會耗用記憶體。如需詳細資訊,請參閱 Redis.io 網站上的金鑰於指定秒數後過期 - Redis 如何處理過期金鑰

ElastiCache 同時使用分支和無分支備份程序。兩種程序都會將傾印磁碟上的所有金鑰,以建立 .rdb 檔案。.rdb 檔案不使用指標或過期金鑰,並且不處理記憶體分散、中繼資料或緩衝區。這表示備份檔案的大小會小於 BytesUsedForCache 指標。

例如,您的 Redis 叢集可能會顯示 BytesUsedforCache 為 15 GiB。這也可能顯示備份是在叢集上有大量讀取/寫入請求期間啟動。備份程序完成後,備份快取大小可能介於 10 GiB 或 12 GiB 之間,而不是 15 GiB。這是因為備份不包含已過期的金鑰、指標等。

注意:

  • ElastiCache 備份中的快取大小來自建立快照時的 Redis used_memory。這是未壓縮快取大小的估計值。如果您將備份快照匯出至 Amazon Simple Storage Service (Amazon S3),則會匯出已壓縮的序列化檔案大小。
  • 您可以使用 info keyspaceDBSIZE 命令來驗證備份的資料完整性。比較原始叢集中的金鑰數目,以及從 RDB 還原的叢集中的金鑰數目。請確認快照建立和還原之間沒有發生任何金鑰插入刪除移出動作。如需詳細資訊,請參閱 Redis 常見問答集中為什麼我的複本的金鑰數目與其主執行個體不同?

相關資訊

ElastiCache for Redis 的備份和還原

AWS 官方
AWS 官方已更新 2 年前