Esta página explica como armazenar vetores em hashes. Os hashes oferecem uma forma eficiente de armazenar vetores no Memorystore for Valkey.
Serialização de dados
Antes de armazenar vetores num tipo de dados de hash, os vetores têm de ser convertidos num formato que o Memorystore for Valkey compreenda. Requer a serialização de vetores em blobs binários, em que o tamanho é igual ao tamanho em bytes do tipo de dados (por exemplo, 4 para FLOAT32) multiplicado pelo número de dimensões do vetor. Uma escolha popular para vetores numéricos é a biblioteca NumPy do Python:
Ligue-se ao Memorystore for Valkey
Antes de armazenar o vetor num hash, estabeleça uma ligação à sua instância do Memorystore for Valkey através de um cliente compatível com o OSS Redis, como o redis-py:
Armazene o vetor num hash
Os hashes são semelhantes a dicionários, com pares de chave-valor. Use o comando HSET
para armazenar o seu vetor 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 uma indexação bem-sucedida, os dados vetoriais têm de cumprir as dimensões e o tipo de dados definidos no esquema do índice.
Preenchimento de índices
O preenchimento de índices pode ocorrer num dos seguintes cenários:
- Depois de criado um índice, o procedimento de preenchimento analisa o espaço de chaves para encontrar entradas que cumpram os critérios do filtro do índice.
- Os índices vetoriais e os respetivos dados são mantidos em cópias instantâneas da RDB. Quando um ficheiro RDB é carregado, é acionado um processo automático de preenchimento de índice. Este processo deteta e integra ativamente quaisquer entradas novas ou modificadas no índice desde que a imagem instantânea da RDB foi criada, mantendo a integridade do índice e garantindo resultados atuais.