Php 获取多个redis排序集上显示的所有关键点

Php 获取多个redis排序集上显示的所有关键点,php,redis,Php,Redis,我在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中加载每个列表并过滤掉每个列表,直到得到我想

我在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 LIST-Z 4 A B C D
    ZRANGE LIST-Z 0 -1 WITHSCORES
    

    这会将A、B、C和D键中的用户相交,并将相交点存储在键列表-Z中

    谢谢,我认为这是正确的方法。我一直在玩这个,我得到了我期望的结果。