*Redis VEMB 命令
VEMB 用于返回指定向量集合中某个 ID 对应的向量数据(嵌入向量)。
*语法
VEMB key id
*参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | String | 是 | 向量集合的键名 |
| id | String | 是 | 向量的唯一标识符 |
*返回值
- Array
:向量数据(浮点数数组) - Nil:ID 不存在于该集合中
- Error:键对应的值不是向量集合类型
*时间复杂度
O(1)
*
*示例
*基本用法
> VADD user_embeddings user1 [0.1, 0.2, 0.3, 0.4]
1
> VEMB user_embeddings user1
[0.1, 0.2, 0.3, 0.4]
*查询不存在的 ID
> VEMB user_embeddings user999
(nil)
*查询高维向量
> VADD image_embeddings img1 [0.001, 0.002, 0.003, ...]
1
> VEMB image_embeddings img1
[0.001, 0.002, 0.003, 0.004, ...]
*常见错误
| 错误 | 原因 | 解决 |
|---|---|---|
| ERR wrong number of arguments | 缺少 key 或 id 参数 | 补充完整参数 |
| WRONGTYPE Operation against a key holding the wrong kind of value | key 不是向量集合 | 确认 key 类型正确 |
*最佳实践
- 场景:获取向量用于离线分析、向量可视化、向量相似度二次计算
- 高频查询建议使用缓存,避免重复读取相同向量
- 大维度向量(如 1536 维)传输时注意网络带宽和序列化开销
*FAQ
Q1: VEMB 返回的向量精度会丢失吗? A: 不会。返回的向量与原始存储的浮点数一致,精度由 Redis 内部存储格式保证。
Q2: 可以批量查询多个 ID 的向量吗? A: 当前命令仅支持单 ID 查询,批量查询建议使用多次 VEMB 配合 Pipeline。
Q3: 返回的向量可以直接用于数学运算吗? A: 可以,返回的浮点数组可直接用于客户端的相似度计算、聚类等操作。