Vectores de indexación

En esta página, se explica cómo almacenar vectores en hashes. Los hashes proporcionan una forma eficiente de almacenar vectores en Redis.

Serialización de datos

Antes de almacenar vectores en un hash de Redis, estos deben convertirse a un formato que Redis comprenda. Requiere la serialización de vectores en BLOB binarios en los que el tamaño es igual al tamaño en bytes del tipo de datos (p.ej., 4 para FLOAT32) multiplicado por la cantidad de dimensiones del vector. La biblioteca NumPy de Python es una opción popular para los vectores numéricos:

Conéctate a Redis

Antes de almacenar el vector en un hash, establece una conexión con tu instancia de Redis usando un cliente como redis-py:

Almacena el vector en un hash

Los hashes de Redis son como diccionarios, con pares clave-valor. Usa el comando HSET de Redis 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_redis_host', port=6379)

redis_client.hset('vector_storage', 'vector_key', serialized_vector)  # 'vector_key' is a unique identifier
  • Para que la indexación se realice correctamente, tus datos de vectores deben cumplir con las dimensiones y el tipo de datos establecidos en el esquema del índice.

Reabastecimiento de índices

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 de Redis en busca de entradas que cumplan con los criterios del filtro del índice.
  • Los índices vectoriales y sus datos se conservan en instantáneas de la BDR. Cuando se carga un archivo RDB, se activa un proceso automático de relleno 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 la RDB, lo que mantiene la integridad del índice y garantiza resultados actuales.