我有2个SET结构,添加了以下值:r.sadd("clONE",'abc')r.sadd("clONE",'def')r.sadd("clONE",'ghi')r.sadd("TWO",'abc')r.sadd("TWO",'def')print(r.sinter("clONE","TWO"))OUTPUT:set(['abc','def'])如何使用pyredis从SET()中获取值“abc”和“def”?我尝试通过指定数组索引[0]使用数组语法,但出现以下错误print(r.sinter("clONE","TWO")[0])TypeError:'set'objectdoesnots
我想交叉多个集合(2个或更多)。要相交的集合数作为ARGV从命令行传递。随着从命令行传递的集合数量。所以redis.call()函数的参数个数是不确定的。如何在Lua脚本中使用redis.call()函数。但是,我写了一个脚本,它的算法如下:接受KEYS[1]中要相交的集合的数量。使用setIntersected=redis.call(ARGV[1],ARGV[2])将前两组相交。运行循环并使用setIntersected=redis.call("sinter",tostring(setIntersected),set[i])最后我应该得到相交集。上述算法的代码是:localnoOfA
我需要redis中2个大集合的交集的长度(SCARD)。所以这实现了我想要的:>SINTERSTOREintermediates:1s:2>SCARDintermediate但是集合很大,所以我不想存储中间值。从概念上讲,我想要:>SCARD(SINTERs:1s:2)有没有一种方法可以在单个命令中实现这一点,也许使用Lua脚本?或者我最好的选择是用我的应用程序语言编写脚本并在完成后删除中间值?例如使用python和redis-py:>>>r=redis.Redis(...)>>>pipe=r.pipeline()>>>res=pipe.sinterstore('intermediat
我需要redis中2个大集合的交集的长度(SCARD)。所以这实现了我想要的:>SINTERSTOREintermediates:1s:2>SCARDintermediate但是集合很大,所以我不想存储中间值。从概念上讲,我想要:>SCARD(SINTERs:1s:2)有没有一种方法可以在单个命令中实现这一点,也许使用Lua脚本?或者我最好的选择是用我的应用程序语言编写脚本并在完成后删除中间值?例如使用python和redis-py:>>>r=redis.Redis(...)>>>pipe=r.pipeline()>>>res=pipe.sinterstore('intermediat
我正在努力提高我对Redis的理解,因为我有一个项目需要快速处理大量数字,但是,我遇到了一个问题,要么我的理解有误,要么不知何故我的代码没有按预期工作。我在MariaDB表中有数据,我正在使用ioredis将每一行的数据hmset到Redis数据库中,然后执行sadd为我需要调整的每个点创建索引。但是,我的结果集不匹配。例如,在MariaDB中,我从两个字段中获得了大约55k条记录的结果集:SELECTCOUNT(`Email`)FROMmyTableWHERE`QualFieldA`='Yes'AND`QualFieldB`='Somethingelse'在Redis中使用相同的字段