*Redis VINFO 命令
VINFO 用于返回指定向量集合的元信息,包括维度、数量、距离度量方式等。
*语法
VINFO key
*参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | String | 是 | 向量集合的键名 |
*返回值
返回一个包含向量集合信息的数组,包含以下主要字段: - dimension: 向量维度 - count: 向量数量 - distance_metric: 距离度量方式(如 cosine、euclidean、innerproduct) - **indextype: 索引类型(如 flat、hnsw、ivf) - **memory_usage: 内存使用量(字节) - indexmemoryusage: 索引内存使用量(字节) - last_updated: 最后更新时间戳
如果键不存在,返回空数组。
*时间复杂度
O(1)
*
*示例
*基本用法
> VADD user_embeddings user1 [0.1, 0.2, 0.3, 0.4]
1
> VINFO user_embeddings
1) "dimension"
2) "4"
3) "count"
4) "1"
5) "distance_metric"
6) "cosine"
7) "index_type"
8) "hnsw"
9) "memory_usage"
10) "1024"
*查询空集合
> VINFO empty_vectors
(empty array)
*批量添加后查看信息
> VADD items item1 [0.1, 0.2]
1
> VADD items item2 [0.3, 0.4]
1
> VINFO items
1) "dimension"
2) "2"
3) "count"
4) "2"
5) "distance_metric"
6) "cosine"
7) "index_type"
8) "hnsw"
*常见错误
| 错误 | 原因 | 解决 |
|---|---|---|
| ERR wrong number of arguments | 缺少 key 参数 | 补充 key |
| WRONGTYPE Operation against a key holding the wrong kind of value | key 不是向量集合 | 确认 key 类型正确 |
*最佳实践
- 场景:监控向量库规模、评估内存使用、调试索引性能
- 定期使用 VINFO 检查内存占用,及时发现异常增长
- 根据 indextype 和 distancemetric 优化相似度搜索参数
*FAQ
Q1: VINFO 和 VCARD 有什么区别? A: VCARD 仅返回向量数量,VINFO 返回完整的集合元信息,包括维度、索引类型、内存使用等。
Q2: 键不存在时返回什么? A: 返回空数组。
Q3: 可以修改 distance_metric 吗? A: 不可以。distance_metric 在集合创建时确定(由第一个插入的向量及配置决定),无法动态修改。