我想對 Amazon ElastiCache Redis 叢集 CacheHitRate 指標下降的問題進行疑難排解。
解決方法
當 CacheHitRate 下降時,通常快取遺失數量會增加。如需詳細資訊,請參閱監控快取效率。若要解決 CacheHitRate 下降的問題,請執行下列動作。
檢查 Redis 引擎是否移出金鑰
當 Redis 引擎移出金鑰來管理記憶體時,移出期間可能會出現 CacheHitRate 下降的情況。
若要檢查 Redis 引擎是否移出金鑰,請查看以下 Amazon CloudWatch 指標:
- 移出
- BytesUsedForCache
- DatabaseMemoryUsagePercentage
若要解決此問題,請擴展叢集。
檢閱您的金鑰到期組態
如果您的金鑰太快過期,那麼您可能會看到回收指標激增。若要查看回收指標,請執行 INFO 命令,然後查看輸出以了解過期事件的數量。此指標列出了 Redis 因存留時間 (TTL) 過期而移除的金鑰總數。如需詳細資訊,請參閱 Redis 網站上的 INFO。
若要解決此問題,請更新金鑰的 TTL 設定。如需詳細資訊,請參閱 Redis 網站上的 TTL。
檢查已移除金鑰的用戶端更新
如果應用程式嘗試擷取用戶端更新已移除的金鑰,那麼您可能會看到以下變化:
- CacheMisses 增加
- CacheHitRate 下降
若要確定用戶端更新是否移除了金鑰,請檢查應用程式是否透過 FLUSHALL、DEL 或 UNLINK 等命令進行更新。如需更多資訊,請參閱 Redis 網站上的 FLUSHALL、DEL 和 UNLINK。
為了減少移除金鑰,最佳做法是使用角色型存取控制 (RBAC)。或者,使用 rename-commands 參數重新命名並記錄可能導致重大問題 (例如移除金鑰) 的命令。有關 rename-commands 參數的更多資訊,請參閱適用於 Redis OSS 的 ElastiCache 版本 5.0.6 (增強版)。
檢查 ElastiCache 是否復原了您的叢集
當叢集遇到硬體問題時,Elasticache 會復原叢集,並從快取中移除所有資料。由於快取是空的,從快取請求資料會導致快取遺失。
若要檢查 ElastiCache 是否復原了叢集,請檢查 ElastiCache 中的 Events (事件) 區段中的 CacheHitRate 指標。
若要提高資料可用性並增強容錯能力,請將讀取複寫新增至叢集,並使用自動容錯移轉選項開啟多可用區。
遵循快取最佳做法
如果 CacheHits 和 CacheMisses 指標都為 0,則沒有任何快取請求。在這種情況下,CloudWatch 不會顯示 CacheHitRate 指標的任何資料。
最佳做法是將快取命中率設為 0.8 或更高。如果 Redis 從快取中移出過多金鑰,或金鑰已過期或不存在,則快取命中率會較低。若要提高快取效能,請遵循快取最佳做法。
相關資訊
Valkey 和 Redis OSS 的指標