*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 在集合创建时确定(由第一个插入的向量及配置决定),无法动态修改。