开发者社区> 问答> 正文

redis如何实现数据翻页随机不重复展示

用户每翻一页都可以看到随机且不重复浏览的数据
展示数据百万级,用户数5W左右;用redis集合来实现
先用集合记录 全部可以展示数据的id
然后用集合记录 每个用户浏览过的数据id
用户每次翻页 SDIFFSTORE 上面两个集合 取差集得出 该用户没有浏览的数据id
然后SRANDMEMBER 随机出一个页的数据id
用数据id查出详细数据
发现性能不给力给放弃了
SRANDMEMBER 随机集合越大而越慢
SDIFFSTORE 得出差集还需要写入

展开
收起
蛮大人123 2016-02-05 13:16:40 3588 0
2 条回答
写回答
取消 提交回答
  • 查到SRANDMEMBER 的时间复杂度是O(count),count是随机取的元素个数。和集合中元素数量无关的。

    2020-05-06 10:57:07
    赞同 展开评论 打赏
  • 我说我不帅他们就打我,还说我虚伪

    通过随机等距抽样;由于是等距,所以只需控制好第一页,就不会有重复 。

    2019-07-17 18:37:43
    赞同 1 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Redis集群演化的心路历程——从2.x到3.0时代 立即下载
微博的Redis定制之路 立即下载
云数据库Redis版的开源之路 立即下载