功能與限制

本頁詳細說明向量搜尋功能和限制。

可用性

所有層級和支援區域的 Memorystore for Redis Cluster 版本,都提供向量搜尋功能。

只有在 2024 年 9 月 13 日推出後建立的執行個體,才會啟用向量搜尋功能。

索引限制

索引的限制如下:

  • 索引中的屬性數量上限為 10 個。
  • 向量的維度不得超過 32,768。
  • HNSW 的 M 值不得超過 2M。
  • HNSW 的 EF 建構值不得超過 4096。
  • HNSW 的 EF 執行階段值也不得超過 4096。

對效能的影響

考量向量搜尋的效能時,請注意以下重要變數。

節點類型

向量搜尋會整合專用於執行向量搜尋作業的執行緒集區,進而促進垂直擴充。也就是說,效能會與叢集中每個節點的 vCPU 數量相關。如要瞭解各節點類型可用的 vCPU 數量,請參閱「叢集和節點規格」。

分片數量

Memorystore for Redis Cluster 會為所有向量實作本機索引技術。也就是說,每個分片上儲存的索引只包含該分片上的文件。因此,索引編製速度和向量總數會隨著叢集中的分片數量線性擴展。

由於每個本機索引只包含單一分片的內容,因此搜尋叢集時,必須搜尋叢集中的每個分片,並彙整結果。在向量數量穩定的情況下,增加分片數量可改善 HNSW 索引的對數搜尋效能,以及 FLAT 索引的線性搜尋效能,因為每個本機索引所含的向量較少。

請注意,由於搜尋所有分片所需的工作量增加,因此隨著分片增加,完成特定搜尋要求的可觀察延遲時間可能會增加。儘管如此,即使是最大的叢集,也能支援個位數毫秒的延遲。

備用資源數量

新增備用資源後,系統會將搜尋要求負載平衡至唯讀備用資源,因此搜尋輸送量會線性增加。

調度事件

調整 Redis 叢集大小後,系統會移動索引中的文件,將資料平均分配到新的分片數量。發生這種情況時,系統會在背景為跨節點移動的文件建立索引。縮放作業完成後,您可以監控 FT.INFO 輸出內容中的 mutation_queue_size 值,查看叢集大小調整後重新建立索引的進度。

記憶體用量

向量會重複儲存於 Redis 鍵空間和向量搜尋演算法中。

交易

由於執行緒集區是以非同步方式執行工作,向量搜尋作業不符合交易語意。