Vektoren speichern

Auf dieser Seite wird erläutert, wie Vektoren in Hashes gespeichert werden. Hashes bieten eine effiziente Möglichkeit, Vektoren in Memorystore for Valkey zu speichern.

Datenserialisierung

Bevor Vektoren in einem Hash-Datentyp gespeichert werden, müssen sie in ein Format konvertiert werden, das Memorystore for Valkey versteht. Dazu ist die Vektorserialisierung in binäre Blobs erforderlich, wobei die Größe der Byte-Größe des Datentyps entspricht (z. B. 4 für FLOAT32), multipliziert mit der Anzahl der Dimensionen des Vektors. Eine beliebte Wahl für numerische Vektoren ist die Python Bibliothek NumPy.

Verbindung zu Memorystore for Valkey herstellen

Bevor Sie den Vektor in einem Hash speichern, stellen Sie eine Verbindung zu Ihrer Memorystore for Valkey-Instanz her. Verwenden Sie dazu einen OSS Redis-kompatiblen Client wie redis-py.

Vektor in einem Hash speichern

Hashes sind wie Wörterbücher mit Schlüssel/Wert-Paaren. Verwenden Sie den Befehl HSET, um den serialisierten Vektor zu speichern:

import numpy as np
import redis

# Sample vector
vector = np.array([1.2, 3.5, -0.8], dtype=np.float32) # 3-dimensional vector

# Serialize to a binary blob
serialized_vector = vector.tobytes()

redis_client = redis.cluster.RedisCluster(host='your_server_host', port=6379)

redis_client.hset('vector_storage', 'vector_key', serialized_vector)  # 'vector_key' is a unique identifier
  • Für eine erfolgreiche Indexierung müssen Ihre Vektordaten den im Indexschema festgelegten Dimensionen und Datentypen entsprechen.

Indizes nachfüllen

Das Nachfüllen von Indizes kann in einem der folgenden Szenarien auftreten:

  • Sobald ein Index erstellt wurde, durchsucht der Nachfüllvorgang den Schlüsselbereich nach Einträgen, die den Indexfilterkriterien entsprechen.
  • Vektorindizes und ihre Daten werden in RDB-Snapshots gespeichert. Wenn eine RDB-Datei geladen wird, wird automatisch ein Index-Nachfüllvorgang ausgelöst. Bei diesem Vorgang werden alle neuen oder geänderten Einträge seit der Erstellung des RDB-Snapshots aktiv erkannt und in den Index aufgenommen. So wird die Indexintegrität gewahrt und aktuelle Ergebnisse sichergestellt.