En esta página, se explica cómo almacenar vectores en hashes. Los hashes proporcionan una forma eficiente de almacenar vectores en Memorystore for Valkey.
Serialización de datos
Antes de almacenar vectores en un tipo de datos hash, los vectores deben convertirse a un formato que Memorystore for Valkey pueda comprender. Esto requiere la serialización de vectores en objetos binarios grandes, en los que el tamaño es igual al tamaño en bytes del tipo de datos (por ejemplo, 4 para FLOAT32) multiplicado por la cantidad de dimensiones del vector. Una opción popular
para los vectores numéricos es la biblioteca NumPy de Python.
Conéctate a Memorystore for Valkey
Antes de almacenar el vector en un hash, establece una conexión con tu instancia de Memorystore for Valkey mediante un cliente compatible con OSS Redis, como redis-py.
Almacena el vector en un hash
Los hashes son como diccionarios, con pares clave-valor. Usa el comando HSET para almacenar tu vector serializado:
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
- Para que la indexación sea exitosa, los datos de tu vector deben cumplir con las dimensiones y el tipo de datos establecidos en el esquema del índice.
Índices de reabastecimiento
El reabastecimiento de índices puede ocurrir en una de las siguientes situaciones:
- Una vez que se crea un índice, el procedimiento de reabastecimiento analiza el espacio de claves en busca de entradas que cumplan con los criterios de filtro del índice.
- Los índices vectoriales y sus datos se conservan en instantáneas de RDB. Cuando se carga un archivo RDB, se activa un proceso automático de reabastecimiento de índices. Este proceso detecta e integra de forma activa cualquier entrada nueva o modificada en el índice desde que se creó la instantánea de RDB, lo que mantiene la integridad del índice y garantiza resultados actuales.