*Redis SISMEMBER 命令
判断 member 是否在 Set 中。
*语法
SISMEMBER key member
*参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | String | 是 | Set 的键名 |
| member | String | 是 | 要检查的成员 |
*返回值
| 条件 | 返回值 |
|---|---|
| member 在 Set 中 | 1 |
| member 不在 Set 中 | 0 |
| key 不存在 | 0 |
| key 非 Set | WRONGTYPE 错误 |
*时间复杂度
O(1)
*
*示例
> SADD myset a b c
(integer) 3
> SISMEMBER myset a
(integer) 1
> SISMEMBER myset d
(integer) 0
*常见错误
- 用 SMEMBERS 替代 SISMEMBER:遍历大 Set 检查存在性性能极差。单个检查永远用 SISMEMBER。
*最佳实践
- 黑名单/白名单判断:SISMEMBER 是 O(1),适合高频判断。
- 布隆过滤器替代:数据量极大(>1亿)且允许误判时,可用 RedisBloom 模块的 BF.EXISTS。
*FAQ
Q: SISMEMBER 和 SMEMBERS 怎么选择? A: 判断单个成员用 SISMEMBER(O(1));需要全部成员且 Set 不大时用 SMEMBERS。大 Set 严禁 SMEMBERS。