Auf dieser Seite finden Sie Details zu den Funktionen und Einschränkungen der Vektorsuche.
Verfügbarkeit
Die Vektorsuche ist für alle Memorystore for Redis Cluster-Versionen in allen Stufen und allen unterstützten Regionen verfügbar.
Die Vektorsuche ist nur für Instanzen verfügbar, die nach dem Einführungsdatum am 13. September 2024 erstellt wurden.
Indexbeschränkungen
Im Folgenden werden die Einschränkungen des Index beschrieben:
- Die maximale Anzahl von Attributen in einem Index darf 10 nicht überschreiten.
- Die Dimension eines Vektors darf 32.768 nicht überschreiten.
- Der M-Wert für HNSW darf nicht über 2M liegen.
- Der EF Construct-Wert für HNSW darf 4.096 nicht überschreiten.
- Der EF-Laufzeitwert für HNSW darf 4.096 nicht überschreiten.
Auswirkungen auf die Leistung
Bei der Bewertung der Leistung der Vektorsuche sind einige wichtige Variablen zu berücksichtigen.
Knotentyp
Die Vektorsuche ermöglicht die vertikale Skalierung durch die Integration von Thread-Pools, die für die Ausführung von Vektorsuchvorgängen vorgesehen sind. Die Leistung hängt also von der Anzahl der vCPUs auf jedem Knoten in Ihrem Cluster ab. Weitere Informationen zur Anzahl der vCPUs, die für jeden Knotentyp verfügbar sind, finden Sie unter Cluster- und Knotenspezifikation.
Anzahl der Shards
In Memorystore for Redis Cluster wird eine lokale Indexierungstechnik für alle Vektoren implementiert. Das bedeutet, dass der auf jedem Shard gespeicherte Index nur die Dokumente enthält, die auf diesem Shard enthalten sind. Daher skaliert die Geschwindigkeit der Indexierung und die Anzahl der Gesamtvektoren linear mit der Anzahl der Shards im Cluster.
Da jeder lokale Index nur die Inhalte eines einzelnen Shards enthält, muss bei der Suche im Cluster jeder Shard durchsucht und die Ergebnisse zusammengefasst werden. Bei einer stabilen Anzahl von Vektoren wird die Suchleistung durch Erhöhen der Anzahl der Shards logarithmisch für HNSW-Indizes und linear für FLAT-Indizes verbessert, da jeder lokale Index weniger Vektoren enthält.
Da für die Suche in allen Shards mehr Arbeit erforderlich ist, kann die beobachtbare Latenz für die Ausführung einer bestimmten Suchanfrage mit zunehmender Anzahl von Shards steigen. Trotzdem unterstützen selbst die größten Cluster Latenzen im einstelligen Millisekundenbereich.
Anzahl der Replikate
Durch das Hinzufügen zusätzlicher Replikate wird der Suchdurchsatz linear erhöht, da Suchanfragen auf Lesereplikate verteilt werden können.
Skalierungsereignisse
Wenn Sie die Größe Ihres Redis-Clusters ändern, werden die Dokumente in Ihren Indexen verschoben, um die Daten gleichmäßig auf die neue Anzahl von Shards zu verteilen. In diesem Fall werden Dokumente, die zwischen Knoten verschoben werden, im Hintergrund indexiert. Nach Abschluss des Skalierungsvorgangs können Sie den Wert von mutation_queue_size
in der FT.INFO-Ausgabe beobachten, um den Fortschritt der Neuindexierung aufgrund der Größenänderung Ihres Clusters zu sehen.
Arbeitsspeicherverbrauch
Vektoren werden dupliziert und sowohl im Redis-Schlüsselbereich als auch im Vektorsuchalgorithmus gespeichert.
Transaktionen
Aufgrund der asynchronen Ausführung von Aufgaben durch Thread-Pools unterliegen Vektorsuchvorgänge nicht der Transaktionssemantik.