*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 中
*常见错误
- 对非 Set 使用:返回 WRONGTYPE。
*最佳实践
- 批量存在性判断:一次判断多个 member,减少网络往返。
*FAQ
Q: SMISMEMBER 和 SISMEMBER 有什么区别? A: SMISMEMBER 一次判断多个 member;SISMEMBER 只判断单个。批量查询用 SMISMEMBER。