获取随机数据并且不重复

场景介绍

1. MySQL 中有 500 条视频数据

2. 用户每次请求随机获取视频列表

  • 每次从 MySQL 中获取 20 条数据
  • 每次获得的数据不能重复

3. 用户数量、视频数量会不断增加

  • 用户数量数量上限 1,000 万
  • 视频数量数量上限 9,000 万

方案一 Redis 集合求差集

SDIFFSTORE

优点

  • 每条数据都是随机产生

缺点

  • 内存消耗巨大

方案二 随机一个页数,每次请求页数递增

优点

  • 内存消耗低

缺点

  • 只是分页数随机
  • 没有做到所有数据都随机

方案三 一直随机页数,过滤掉已访问的页数

  • 作者:码报国
  1. 将20个页数随机存入一个栈
  2. 请求的时候从栈中弹出一个
  3. 当栈为空时,遍历完所有的数据
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值