redis 中已存在一个集合 A
我代码里有另一个集合 B
我想要得出这两个集合的交集
我看 redis 的那 15 条集合命令, 看来看去只能这样做:
先把集合 B 用 SADD key member1 [member2] 命令先存入的一个 redis 里临时的集合中
再用 SINTER key1 [key2] 得到我要的交集
然后再把 redis 里的临时集合删掉
为什么 redis 没有给出一个命令来一步实现这个流程呢? 直接这样多好: SINTERXXX key member1 [member2]
1
wysnylc 2020-04-18 15:14:08 +08:00
|
2
nvkou 2020-04-18 15:23:47 +08:00 via Android
因为复用啊。万一你是要并集呢?万一牵涉到多个集合呢?
|
4
5bb864e1fc775087 OP @nvkou #2
差集 SDIFF key1 [key2] SDIFFSTORE destination key1 [key2] 交集 SINTER key1 [key2] SINTERSTORE destination key1 [key2] 并集 SUNION key1 [key2] SUNIONSTORE destination key1 [key2] 都分别有两个命令了 如果要多一种我这个命令, 那肯定差集交集并集都要分别多一个命令出来 牵涉到多个集合 那确实没办法 |
5
tairan2006 2020-04-18 18:35:30 +08:00 via Android
你在代码里取交集不就完了…
|
6
Trim21 2020-04-18 18:39:25 +08:00 via Android
一个命令完成是怕执行过程中 A 被改变了还是为了省劲?如果是前者可以用 Lua…
|
7
brust 2020-04-18 18:48:24 +08:00
用 lua 脚本 或者 自己加个 so 文件 新增一条命令
|