我想使用redis的sets数据结构来存储用户的关注者列表,如何根据页面大小进行分页从列表中获取记录?
除了 @Didier Spezia 所写的内容之外,我还尝试将关注者存储在排序集中。
如果您想按名称查找它们,请将它们全部存储为 0 分,然后使用 ZRANGEBYLEX 按词法对它们进行分页。
如果你想按照加为好友的顺序,可以用添加的时间戳作为分数,然后使用ZRANGE按时间分页。
[编辑]哦,还有另一个选项可以看看内存是否与您有关:如果 id 是常量长度整数,您可以使用字符串键将它们作为二进制值存储在数组中,并使用范围对其进行分页。它将非常快,并且几乎具有 0 内存开销。看一下 BITFIELD 命令。这可能是一个非常好的用例,尽管它不包括删除和查找,所以如果这些是一个问题,那么它不是一个好的选择。
您可以尝试利用 SSCAN 命令。确保首先了解 SCAN 命令的工作原理。