*Redis SMISMEMBER 命令

判断多个 member 是否都在 Set 中。Redis 6.2+ 引入,是 SISMEMBER 的批量版本。


*语法

SMISMEMBER key member [member ...]

*参数说明

参数 类型 必填 说明
key String Set 键名
member String 要判断的成员,可一次判断多个

*返回值

条件 返回值
对每个 member 0/1 数组,1 表示在 Set 中,0 表示不在

*时间复杂度

O(M),M 为 member 数量。


*示例

> SADD myset a b c
(integer) 3

> SMISMEMBER myset a d b
1) (integer) 1    # a 在 Set 中
2) (integer) 0    # d 不在 Set 中
3) (integer) 1    # b 在 Set 中

*常见错误

  1. 对非 Set 使用:返回 WRONGTYPE。

*最佳实践

  1. 批量存在性判断:一次判断多个 member,减少网络往返。

*FAQ

Q: SMISMEMBER 和 SISMEMBER 有什么区别? A: SMISMEMBER 一次判断多个 member;SISMEMBER 只判断单个。批量查询用 SMISMEMBER。