Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Halaman ini menjelaskan cara menyimpan vektor dalam hash. Hash menyediakan cara yang efisien untuk menyimpan vektor di Redis.
Serialisasi data
Sebelum menyimpan vektor dalam jenis data hash, vektor harus dikonversi ke dalam format yang dipahami Memorystore for Redis. Hal ini memerlukan serialisasi vektor ke dalam blob biner dengan ukuran yang sama dengan ukuran byte jenis data (misalnya, 4 untuk FLOAT32) dikalikan dengan jumlah dimensi vektor. Pilihan populer untuk vektor numerik adalah library NumPy Python:
Menghubungkan ke Redis
Sebelum menyimpan vektor dalam hash, buat koneksi ke instance Memorystore for Redis menggunakan klien yang kompatibel dengan OSS Redis seperti redis-py:
Menyimpan vektor dalam hash
Hash mirip dengan kamus, dengan pasangan nilai kunci. Gunakan perintah HSET untuk menyimpan vektor serialisasi:
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.Redis(host='your_redis_host', port=6379)
redis_client.hset('vector_storage', 'vector_key', serialized_vector) # 'vector_key' is a unique identifier
Agar pengindeksan berhasil, data vektor Anda harus mematuhi dimensi dan jenis data yang ditetapkan dalam skema indeks.
Mengisi Ulang Indeks
Pengisian ulang indeks dapat terjadi dalam salah satu skenario berikut:
Setelah indeks dibuat, prosedur pengisian ulang akan memindai ruang kunci untuk menemukan entri yang memenuhi kriteria filter indeks.
Indeks vektor dan datanya dipertahankan dalam snapshot RDB. Saat file RDB dimuat, proses pengisian ulang indeks otomatis akan dipicu. Proses ini secara aktif mendeteksi dan mengintegrasikan entri baru atau yang diubah ke dalam indeks sejak snapshot RDB dibuat, mempertahankan integritas indeks, dan memastikan hasil saat ini.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-09-08 UTC."],[],[],null,["# Indexing vectors\n\nThis page explains how to store vectors in hashes. Hashes provide an efficient way to store vectors in Redis.\n\nData serialization\n------------------\n\nBefore storing vectors in a hash data type, vectors need to be converted into a format that Memorystore for Redis understands. It requires vector serialization into binary blobs where the size equals the data type's byte size (e.g., 4 for FLOAT32) multiplied by the vector's number of dimensions. A popular choice for numerical vectors is the Python [NumPy library](https://numpy.org/):\n\nConnect to Redis\n----------------\n\nBefore storing the vector in a hash, establish a connection to your Memorystore for Redis instance using a OSS Redis compatible client like [redis-py](https://github.com/redis/redis-py):\n\nStore the vector in a hash\n--------------------------\n\nHashes are like dictionaries, with key-value pairs. Use the `HSET` command to store your serialized vector: \n\n```\nimport numpy as np\nimport redis\n\n# Sample vector\nvector = np.array([1.2, 3.5, -0.8], dtype=np.float32) # 3-dimensional vector\n\n# Serialize to a binary blob\nserialized_vector = vector.tobytes()\n\nredis_client = redis.Redis(host='your_redis_host', port=6379)\n\nredis_client.hset('vector_storage', 'vector_key', serialized_vector) # 'vector_key' is a unique identifier\n```\n\n- For successful indexing, your vector data must adhere to the dimensions and data type set in the index schema.\n\nBackfilling Indexes\n-------------------\n\nBackfilling indexes may occur in one of the following scenarios:\n\n- Once an index is created, the backfilling procedure scans through keyspace for entries that meet the index filter criteria.\n- Vector indexes and their data are persisted in [RDB snapshots](/memorystore/docs/redis/about-rdb-snapshots). When an RDB file is loaded, an automatic index backfilling process is triggered. This process actively detects and integrates any new or modified entries into the index since the RDB snapshot was created, maintaining index integrity and ensuring current results."]]