跳至內容

如何對 ElastiCache Redis 叢集中 CacheHitRate 指標下降的問題進行疑難排解?

1 分的閱讀內容
0

我想對 Amazon ElastiCache Redis 叢集 CacheHitRate 指標下降的問題進行疑難排解。

解決方法

CacheHitRate 下降時,通常快取遺失數量會增加。如需詳細資訊,請參閱監控快取效率。若要解決 CacheHitRate 下降的問題,請執行下列動作。

檢查 Redis 引擎是否移出金鑰

當 Redis 引擎移出金鑰來管理記憶體時,移出期間可能會出現 CacheHitRate 下降的情況。

若要檢查 Redis 引擎是否移出金鑰,請查看以下 Amazon CloudWatch 指標:

  • 移出
  • BytesUsedForCache
  • DatabaseMemoryUsagePercentage

若要解決此問題,請擴展叢集

檢閱您的金鑰到期組態

如果您的金鑰太快過期,那麼您可能會看到回收指標激增。若要查看回收指標,請執行 INFO 命令,然後查看輸出以了解過期事件的數量。此指標列出了 Redis 因存留時間 (TTL) 過期而移除的金鑰總數。如需詳細資訊,請參閱 Redis 網站上的 INFO

若要解決此問題,請更新金鑰的 TTL 設定。如需詳細資訊,請參閱 Redis 網站上的 TTL

檢查已移除金鑰的用戶端更新

如果應用程式嘗試擷取用戶端更新已移除的金鑰,那麼您可能會看到以下變化:

  • CacheMisses 增加
  • CacheHitRate 下降

若要確定用戶端更新是否移除了金鑰,請檢查應用程式是否透過 FLUSHALLDELUNLINK 等命令進行更新。如需更多資訊,請參閱 Redis 網站上的 FLUSHALLDELUNLINK

為了減少移除金鑰,最佳做法是使用角色型存取控制 (RBAC)。或者,使用 rename-commands 參數重新命名並記錄可能導致重大問題 (例如移除金鑰) 的命令。有關 rename-commands 參數的更多資訊,請參閱適用於 Redis OSS 的 ElastiCache 版本 5.0.6 (增強版)

檢查 ElastiCache 是否復原了您的叢集

當叢集遇到硬體問題時,Elasticache 會復原叢集,並從快取中移除所有資料。由於快取是空的,從快取請求資料會導致快取遺失。

若要檢查 ElastiCache 是否復原了叢集,請檢查 ElastiCache 中的 Events (事件) 區段中的 CacheHitRate 指標。

若要提高資料可用性並增強容錯能力,請將讀取複寫新增至叢集,並使用自動容錯移轉選項開啟多可用區

遵循快取最佳做法

如果 CacheHitsCacheMisses 指標都為 0,則沒有任何快取請求。在這種情況下,CloudWatch 不會顯示 CacheHitRate 指標的任何資料。

最佳做法是將快取命中率設為 0.8 或更高。如果 Redis 從快取中移出過多金鑰,或金鑰已過期或不存在,則快取命中率會較低。若要提高快取效能,請遵循快取最佳做法

相關資訊

Valkey 和 Redis OSS 的指標

AWS 官方已更新 9 個月前