[英]Get all keys that appear on multiple redis sorted sets
我在Redis上有多个排序集,其中包含用户ID和得分。 有什么方法可以过滤和获取出现在多个集合上的用户ID? 例如,如果列表看起来像这样
List A - u1, u2, u3, u4, u5
List B - u3, u4, u5
List C - u4, u2, u3
List D - u4, u1, u2
如果我输入列表A,B,C,D,那么应该出现的唯一用户ID是u4
如果我输入列表A,B,C,则返回的用户ID是u4,u3。
我可以通过在PHP中加载每个列表并过滤出每个列表,直到剩下想要的ID来进行映像处理,但是在Redis中有什么方法可以执行此操作?
我也对在Redis中存储此结构的新方法持开放态度。
在集合论中,它称为交集。 Redis有一个ZINTERSTORE命令,该命令与多个排序集的键相交并将其存储到一个新键中。
ZINTERSTORE LIST-Z 4 A B C D
ZRANGE LIST-Z 0 -1 WITHSCORES
这使用户与键A,B,C和D相交,并将相交存储在键LIST-Z中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.