

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 整體最佳實務
<a name="WorkingWithRedis"></a>

您可以在下方找到在 ElastiCache 中使用 Valkey、Memcached 和 Redis OSS 介面的最佳實務的相關資訊。
+ **使用啟用叢集模式的組態**：啟用叢集模式可讓快取水平擴展，藉此達到比停用叢集模式的組態更高的儲存和輸送量。ElastiCache 無伺服器僅適用於啟用叢集模式的組態。
+ **使用長時間執行的連線**：建立新連線費用昂貴，而且會佔用快取的時間和 CPU 資源。盡可能重複使用連線 (例如使用連線集區)，以將此費用分攤至多個命令。
+ **從複本讀取** – 如果您使用 ElastiCache 無伺服器或已佈建僅供讀取複本 （節點型叢集）， 會將讀取導向複本，以達到更佳的可擴展性和/或更低的延遲。從複本讀取的內容最終會與主節點保持一致。

  在節點型叢集中，避免將讀取請求導向單一僅供讀取複本，因為如果節點失敗，讀取可能無法暫時使用。請設定用戶端將讀取請求導向到至少兩個讀取複本，或將讀取導向單一複本和主節點。

  在 ElastiCache 無伺服器中，從複本連接埠 (6380) 讀取時，會盡可能將讀取導向用戶端的本機可用區域，以減少擷取延遲。發生故障時，它將自動回復至其他節點。
+ **避免費時命令** -避免執行任何需要大量運算或輸入/輸出的操作，例如 `KEYS` 和 `SMEMBERS` 命令。我們建議此方法，因為這些操作會增加叢集上的負載，並會影響叢集的效能。請改為使用 `SCAN` 和 `SSCAN` 命令。
+ **遵循 Lua 最佳實務** - 避免長時間執行的 Lua 指令碼，並且一律預先宣告用於 Lua 指令碼的索引鍵。我們建議此方法來判斷 Lua 指令碼並未使用跨位置命令。確認用於 Lua 指令碼中的鍵屬於相同位置。
+ **使用碎片 pub/sub** – 使用 Valkey 或 Redis OSS 支援高輸送量的 pub/sub 工作負載時，建議您使用[碎片 pub/sub](https://valkey.io/topics/pubsub/) （適用於 Valkey，以及 Redis OSS 7 或更新版本）。在啟用叢集模式的叢集中的傳統 pub/sub 會將訊息廣播到叢集中的所有節點，因此可能導致高 `EngineCPUUtilization`。請注意，在 ElastiCache 無伺服器中，傳統 pub/sub 命令會在內部使用碎片 pub/sub 命令。

**Topics**