我需要redis中2个大集合的交集的长度(SCARD)。
所以这实现了我想要的:
> SINTERSTORE intermediate s:1 s:2
> SCARD intermediate
但是集合很大,所以我不想存储中间值。从概念上讲,我想要:
> SCARD (SINTER s:1 s:2)
有没有办法在一个命令中实现这一点,也许是 Lua 脚本?还是我最好用我的应用程序语言编写脚本并在完成后删除中间值?例如使用 python 和 redis-py:
>>> r = redis.Redis(...)
>>> pipe = r.pipeline()
>>> res = pipe.sinterstore('intermediate', 's:1', 's:2').scard('intermediate').delete('intermediate').execute()
>>> print res[1]