*Redis VISMEMBER 命令

VISMEMBER 用于判断指定的 ID 是否存在于向量集合中。


*语法

VISMEMBER key id

*参数说明

参数 类型 必填 说明
key String 向量集合的键名
id String 待查询的向量唯一标识符

*返回值

  • Integer(1):ID 存在于向量集合中
  • Integer(0):ID 不存在或键不存在
  • Error:键对应的值不是向量集合类型

*时间复杂度

O(1)

*

*示例

*基本用法

> VADD user_embeddings user1 [0.1, 0.2, 0.3, 0.4]
1
> VISMEMBER user_embeddings user1
1
> VISMEMBER user_embeddings user2
0

*查询不存在的键

> VISMEMBER non_existent_key user1
0

*批量添加后验证

> VADD items item1 [0.1, 0.2]
1
> VADD items item2 [0.3, 0.4]
1
> VISMEMBER items item1
1
> VISMEMBER items item3
0

*常见错误

错误 原因 解决
ERR wrong number of arguments 缺少 key 或 id 参数 补充完整参数
WRONGTYPE Operation against a key holding the wrong kind of value key 不是向量集合 确认 key 类型正确

*最佳实践

  • 场景:向量去重检查、数据完整性校验、更新前确认存在性
  • 批量查询时建议使用 Pipeline 减少网络往返
  • VADD 配合可实现「存在则更新,不存在则新增」的幂等逻辑

*FAQ

Q1: VISMEMBER 和 SISMEMBER 有什么区别? A: VISMEMBER 用于向量集合,SISMEMBER 用于 Redis Set 类型。两者底层数据结构不同。

Q2: 键不存在时返回什么? A: 返回 0。

Q3: 可以一次查询多个 ID 吗? A: 当前命令仅支持单 ID 查询,批量查询建议使用多个 VISMEMBER 配合 Pipeline。