*Redis VCARD 命令
VCARD 用于返回指定向量集合中的向量数量。
*语法
VCARD key
*参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | String | 是 | 向量集合的键名 |
*返回值
- Integer:向量集合中的向量数量
- Integer(0):键不存在或集合为空
- Error:键对应的值不是向量集合类型
*时间复杂度
O(1)
*
*示例
*基本用法
> VADD user_embeddings user1 [0.1, 0.2, 0.3, 0.4]
1
> VCARD user_embeddings
1
*查询空集合
> VCARD empty_vectors
0
*批量添加后查询
> VADD items item1 [0.1, 0.2]
1
> VADD items item2 [0.3, 0.4]
1
> VADD items item3 [0.5, 0.6]
1
> VCARD items
3
*常见错误
| 错误 | 原因 | 解决 |
|---|---|---|
| ERR wrong number of arguments | 缺少 key 参数 | 补充 key |
| WRONGTYPE Operation against a key holding the wrong kind of value | key 不是向量集合 | 确认 key 类型正确 |
*最佳实践
- 场景:统计向量库规模、监控索引大小、分页查询前获取总量
- 与 VSIM 配合使用时,可用 VCARD 预估相似度搜索的数据规模
- 在数据导入过程中,使用 VCARD 验证导入结果
*FAQ
Q1: VCARD 和 SCARD 有什么区别? A: VCARD 用于向量集合,SCARD 用于 Redis 集合(Set)类型。两者不能混用。
Q2: 键不存在时返回什么? A: 返回 0。
Q3: VCARD 会触发全量扫描吗? A: 不会。VCARD 是 O(1) 操作,内部维护计数器,不会扫描全部向量。