*Redis SSCAN 命令
以游标方式分批遍历 Set 中的成员。
*语法
SSCAN key cursor [MATCH pattern] [COUNT count]
*参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | String | 是 | Set 的键名 |
| cursor | Integer | 是 | 游标,首次为 0 |
| MATCH | String | 否 | 匹配成员名,glob 风格 |
| COUNT | Integer | 否 | 扫描提示数量 |
*返回值
返回 [next_cursor, [member1, member2, ...]]。
*时间复杂度
O(1) 每次调用 + O(N) 返回 N 个成员。
*示例
> SADD myset user1 user2 user3 admin1 admin2
(integer) 5
> SSCAN myset 0
1) "0"
2) 1) "user1"
2) "admin1"
3) "user2"
4) "admin2"
5) "user3"
# 带 MATCH 过滤
> SSCAN myset 0 MATCH user*
1) "0"
2) 1) "user1"
2) "user2"
3) "user3"
*常见错误
- 用 SMEMBERS 遍历大 Set:生产环境大 Set 必须用 SSCAN。
*最佳实践
*FAQ
Q: SSCAN 和 SMEMBERS 有什么区别? A: 同 SCAN 和 KEYS 的区别。SSCAN 不阻塞,SMEMBERS 大 Set 会阻塞。