首页/数据/数据库速查/SINTERCARD 交集基数(不生成结果集)
Redis 命令96 条

SINTERCARD 交集基数(不生成结果集)

SINTERCARD 直接返回多个集合交集的基数,不生成结果集,支持 LIMIT 提前终止;7.0 新增,替代「SINTERSTORE 后再 SCARD」的旧写法。

数据库速查数据更新于 2026-10-12

用法

用法
SADD s1 a b c d
SADD s2 b c d e
SINTERCARD 2 s1 s2          # -> 3(b/c/d)
SINTERCARD 2 s1 s2 LIMIT 2  # -> 2(达到上限即停,不是真实总数)
# 旧写法对照(会产生临时键):
SINTERSTORE tmp s1 s2
SCARD tmp
语法SINTERCARD numkeys key [key...] [LIMIT n]
numkeys首位必填,且与后面键数一致
LIMIT0=不限;达到上限提前返回,结果=上限值
典型「至少共同 N 个」判断、组合筛选计数
复杂度 O(N*M)(N 最小集合元素数、M 集合数),几百万级集合直接算会阻塞,先在业务侧收敛集合规模。

易错点

  • 漏传 numkeys 导致参数错位报错
  • 把 LIMIT 截断值当成真实交集大小:它只代表「至少这么多」

数据来源与参考

  • Redis 官方文档: SINTERCARD
  • Redis 官方文档: SINTERSTORE

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌