Amazon ElastiCache for Redis を使用しています。Redis バックアップ (.rdb) ファイルが常にクラスターの BytesUsedForCache メトリクスより小さいのはなぜですか?
解決方法
BytesUsedForCache メトリクスには、すべての目的のためのバイトが含まれます。これには、実際のキーサイズ、ヘッダー、およびメモリの断片化が含まれます。また、有効期限が切れたキーも、Redis が受動的または能動的に非同期で削除するまでメモリを消費します。詳細については、Redis.io ウェブサイトの「Expire key seconds - How Redis expires keys」をご参照ください。
ElastiCache は、分岐ありと分岐なしの両方のバックアッププロセスを使用します。どちらのプロセスも、ディスクにすべてのキーをダンプして .rdb ファイルを作成します。.rdb ファイルは、ポインタや期限切れのキーを使用せず、メモリの断片化、メタデータ、バッファを処理しません。つまり、バックアップファイルのサイズは BytesUsedForCache メトリクスよりも小さくなります。
例えば、Redis クラスターで BytesUsedforCache が 15 GiB と表示される場合があります。また、クラスターで大量の読み取り/書き込みリクエストの間にバックアップが開始されたことを示す場合もあります。バックアッププロセスが完了すると、バックアップキャッシュサイズは 15 GiB ではなく 10 GiB または 12 GiB の範囲になります。これは、バックアップに期限切れのキーやポインターなどが含まれていないためです。
注:
関連情報
ElastiCache for Redis のバックアップと復元