如何对redis的sets数据结构进行分页?
How to do paging on redis's sets data structure?
我想使用redis的sets数据结构来存储用户的粉丝列表,如何进行分页以根据页面大小从列表中获取记录?
您可以尝试利用 SSCAN 命令。请务必先了解 SCAN 命令的工作原理。
除了@Didier Spezia 所写的内容之外,我还尝试将关注者存储在一个排序集中。
如果您希望按名称来存储它们,请将它们全部存储为 0,然后使用 ZRANGEBYLEX 按词汇对它们进行分页。
如果想按加为好友的先后顺序,使用添加时间戳作为分数,使用ZRANGE按时间分页。
[EDIT] 哦,如果你担心内存,另一种选择:如果 id 是恒定长度的整数,你可以使用字符串键将它们作为二进制值存储在数组中,并使用范围对其进行分页。它将非常快并且内存开销几乎为 0。看看 BITFIELD 命令。这可能是一个很好的用例,虽然它不包括删除和查找,所以如果这些是一个问题,它不是一个好的选择。
我想使用redis的sets数据结构来存储用户的粉丝列表,如何进行分页以根据页面大小从列表中获取记录?
您可以尝试利用 SSCAN 命令。请务必先了解 SCAN 命令的工作原理。
除了@Didier Spezia 所写的内容之外,我还尝试将关注者存储在一个排序集中。
如果您希望按名称来存储它们,请将它们全部存储为 0,然后使用 ZRANGEBYLEX 按词汇对它们进行分页。
如果想按加为好友的先后顺序,使用添加时间戳作为分数,使用ZRANGE按时间分页。
[EDIT] 哦,如果你担心内存,另一种选择:如果 id 是恒定长度的整数,你可以使用字符串键将它们作为二进制值存储在数组中,并使用范围对其进行分页。它将非常快并且内存开销几乎为 0。看看 BITFIELD 命令。这可能是一个很好的用例,虽然它不包括删除和查找,所以如果这些是一个问题,它不是一个好的选择。