本頁面說明 Memorystore for Redis Cluster 執行個體的叢集和節點規格。如需建立執行個體的操作說明,請參閱「建立執行個體」。
選擇節點類型
叢集中的所有分片都會使用您選擇的相同節點類型。叢集的最佳節點類型取決於價格、效能和鍵空間容量需求。
redis-shared-core-nano 節點類型適用於小型工作負載。這類節點類型提供可變動的效能,且沒有服務水準協議,因此不適合用於實際工作負載。
redis-standard-small 節點類型可讓您佈建小型叢集,並以較小的增量擴充叢集,與其他節點類型相比,可能更經濟實惠。redis-standard-small 的優勢在於能將鍵空間分配到更多節點,並提高 vCPU 總數。只要小型節點的鍵空間總容量足以滿足資料需求,與 redis-highmem-medium 相比,redis-standard-small 的性價比更高。
如果工作負載需要較高的處理能力與記憶體比率,請選擇 redis-highcpu-medium 節點類型。如果需要的容量超過 redis-highmem-medium 提供的容量,建議選擇 redis-standard-large、redis-highmem-xlarge 或 redis-highmem-2xlarge 節點類型。將 vCPU 新增至越來越大的節點 (擴充資源) 時,Redis 效能可能不會線性擴充。建議您水平擴展,在叢集中新增更多節點,以獲得更划算的價格效能。
節點類型規格
節點容量和特性取決於您選擇的節點類型:
鍵空間容量和預留的額外負荷
| 節點類型 | 預設可寫入鍵空間容量 | 節點總容量 |
|---|---|---|
| redis-shared-core-nano | 1.12 GB | 1.4 GB |
| redis-standard-small | 5.2 GB | 6.5 GB |
| redis-highmem-medium | 10.4 GB | 13 GB |
| redis-highcpu-medium | 10.4 GB | 13 GB |
| redis-standard-large | 20.8 GB | 26 GB |
| redis-highmem-xlarge | 46.4 GB | 58 GB |
| redis-highmem-2xlarge | 88 GB | 110 GB |
為避免記憶體不足 (OOM) 錯誤,Memorystore 會自動預留部分執行個體容量,確保讀取及寫入鍵值時不會發生問題。記憶體限制和儲存空間詳細資料如下:
自訂儲存空間:我們建議使用預設設定,但您也可以使用
maxmemory設定調整預留儲存空間量。如要瞭解maxmemory,請參閱「支援的執行個體設定」。可用的儲存空間大小:請參閱上表中的「預設可寫入鍵空間容量」欄位。這會顯示預設可用的鍵儲存空間大小。
盡量擴充儲存空間:如要盡量擴充儲存空間,請將
maxmemory設定為 100%,「節點總容量」欄會顯示儲存空間上限。不過,建議不要選擇高於預設設定的maxmemory值。redis-shared-core-nano節點類型有 1.12 GB 的硬性限制,且無法透過maxmemory設定變更。
節點特性
| 節點類型 | vCPU 數量 | 服務水準協議 | 預設用戶端連線數 | 用戶端連線數上限 | 用戶端記憶體上限 (maxmemory-clients 設定) |
|---|---|---|---|---|---|
| redis-shared-core-nano | 0.5 | 否 | 5,000 | 5,000 | 12% |
| redis-standard-small | 2 | 是 | 16,000 | 32,000 | 7% |
| redis-highmem-medium | 2 | 是 | 32,000 | 64,000 | 7% |
| redis-highcpu-medium | 8 | 是 | 32,000 | 64,000 | 7% |
| redis-standard-large | 8 | 是 | 32,000 | 64,000 | 7% |
| redis-highmem-xlarge | 8 | 是 | 64,000 | 64,000 | 4% |
| redis-highmem-2xlarge | 16 | 是 | 64,000 | 64,000 | 4% |
為叢集選取的虛擬 CPU (vCPU) 越多,效能就越好。如果叢集執行耗用大量資源的工作負載,請選取 vCPU 較高的節點類型 (例如 redis-highmem-xlarge)。如果叢集執行的工作較不耗用資源,請選取 vCPU 較低的節點類型 (例如 redis-highmem-medium)。
調度執行個體資源
建立 Memorystore for Redis Cluster 執行個體時,您會選擇執行個體的節點類型,並指定執行個體的分片數量。建立執行個體後,隨著執行個體的容量需求變化,您可能需要透過下列方式擴充執行個體:
- 變更執行個體的 shard 數量。這就是水平資源調度。
如要水平調整執行個體大小,請執行下列其中一項動作:
- 在執行個體中新增分片。這會擴大執行個體。
- 從執行個體中移除分片。這會縮減執行個體。
- 變更執行個體的節點類型。這就是垂直資源調度。如要垂直調度執行個體資源,請將執行個體的節點類型變更為下列其中一種節點類型:
- 改用較大的節點類型。這會向上擴充執行個體。
- 改用較小的節點類型。這會縮減執行個體。
叢集規格
這個部分會根據叢集形狀、節點類型和副本數量,顯示叢集容量下限和上限。
可寫入容量下限
可寫入容量是指可用於寫入金鑰的儲存空間量,等於一個執行個體節點的大小。因此,可寫入容量下限介於 1.4 GB 和 110 GB 之間,視節點類型而定。可寫入容量下限不會受到您選擇的副本數量影響。
可寫入容量上限
| 節點類型和大小 | 叢集形狀為 250 個主要節點,每個節點 0 個副本時的容量上限 | 叢集形狀為 125 個主要節點,每個節點有 1 個副本,因此容量上限為 | 叢集形狀為 83 個主要節點,每個節點有 2 個副本,因此容量上限為 | 叢集形狀為 62 個主要節點,每個節點 3 個副本,因此容量上限為 186 個節點 | 叢集形狀為 50 個主要節點,每個節點有 4 個副本,因此容量上限為 200 個節點 | 叢集形狀為 41 個主要節點,每個節點有 5 個副本,因此容量上限為 205 個節點 |
|---|---|---|---|---|---|---|
| redis-shared-core-nano - 1.4 GB | 350 GB | 175 GB | 116.2 GB | 86.8 GB | 70 GB | 57.4 GB |
| redis-standard-small - 6.5 GB | 1,625 GB | 812.5 GB | 539.5 GB | 403 GB | 325 GB | 266.5 GB |
| redis-highmem-medium - 13 GB | 3,250 GB | 1,625 GB | 1,079 GB | 806 GB | 650 GB | 533 GB |
| redis-highcpu-medium - 13 GB | 3,250 GB | 1,625 GB | 1,079 GB | 806 GB | 650 GB | 533 GB |
| redis-standard-large - 26 GB | 6,500 GB | 3,250 GB | 2,158 GB | 1,612 GB | 1,300 GB | 1,066 GB |
| redis-highmem-xlarge - 58 GB | 14,500 GB | 7,250 GB | 4,814 GB | 3,596 GB | 2,900 GB | 2,378 GB |
| redis-highmem-2xlarge - 110 GB | 27,500 GB | 13,750 GB | 9,130 GB | 6,820 GB | 5,500 GB | 4,510 GB |
效能
在 us-central1 區域使用 OSS memtier 基準化工具,每個 2 個 vCPU 的節點 (redis-standard-small 和 redis-highmem-medium) 每秒可產生 120,000 到 130,000 個作業,延遲時間為微秒,資料大小為 1 KiB。
建議您使用實際工作負載或類似於實際工作環境流量的合成工作負載,自行執行基準化作業。此外,建議您為叢集預留緩衝區 (或「空間」),以因應工作負載尖峰或非預期流量。如需更多指引,請參閱 Memorystore for Redis Cluster 最佳做法。
叢集端點
本節說明每個執行個體擁有的兩個端點。
探索端點
每個執行個體都有探索端點,供用戶端連線。這是 IP 位址和通訊埠號碼的組合。如需如何找出叢集探索端點的操作說明,請參閱「查看叢集的探索端點」。
您的用戶端也會使用這項資訊探索節點。您的用戶端會使用探索端點擷取執行個體的叢集拓撲,以啟動 OSS Redis 叢集用戶端,並在穩定狀態下保持更新。產生的叢集拓撲會提供 Redis 節點端點 (IP 和連接埠組合),供 Redis 叢集用戶端在記憶體中快取。接著,客戶會自動處理更新和重新導向,不需進行其他應用程式變更。如要瞭解用戶端探索行為和最佳做法,請參閱「用戶端探索」。
探索端點由多個可用區的 Redis 節點提供支援,可服務叢集拓撲,因此可用性極高。即使後端節點發生故障或更新,透過端點提供的拓撲仍可正常運作。
探索端點的行為如下:
叢集執行個體生命週期內,叢集的探索端點會維持不變,即使在維護期間,或您採取任何其他動作 (例如擴大或縮小規模,或變更副本計數) 也是如此。
Redis 節點端點可能會變更,而且隨著時間推移,節點新增和移除時,端點可能會重複使用。理想情況下,您應使用 Redis 叢集用戶端,透過拓撲重新整理和重新導向自動處理這些變更。如需 Redis 叢集用戶端範例,請參閱「用戶端程式庫程式碼範例」。您的應用程式不應有節點端點在特定叢集中保持不變的依附元件或假設。
資料端點
除了探索端點,每個叢集都有資料端點。這個端點專供 Memorystore for Redis Cluster 使用,可將用戶端連線至叢集中的節點。因此,請勿直接連線至這個端點。