*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

*常见错误

  1. 用 SMEMBERS 替代 SISMEMBER:遍历大 Set 检查存在性性能极差。单个检查永远用 SISMEMBER。

*最佳实践

  1. 黑名单/白名单判断:SISMEMBER 是 O(1),适合高频判断。
  2. 布隆过滤器替代:数据量极大(>1亿)且允许误判时,可用 RedisBloom 模块的 BF.EXISTS

*FAQ

Q: SISMEMBER 和 SMEMBERS 怎么选择? A: 判断单个成员用 SISMEMBER(O(1));需要全部成员且 Set 不大时用 SMEMBERS。大 Set 严禁 SMEMBERS