实现抽奖思路: PHP7加Redis怎么实现抽奖 每次概率不一样

需求 用户抽奖, 可以抽奖3次, 每次的概率为5,10,15这种(概率基数为5的倍数这种), 可以自己设置 . 如果是其他固定的概率, 可以自己设置一个Redis的 hash存下来 每次根据抽奖次数和下标进行比对就可以了

  1. 用户去请求, Redis队列检查是否存在用户
  2. 存在就检查用户抽奖次数, 如果小于=3 , PHP产生一个随机数1-100, 如果在用户抽奖次数*每次的中奖概率的基数-1之间就可以 记录抽奖结果
    1. 用户数据中一个记录抽奖次数 抽奖结果
  3. 不存在 就把用户加入抽奖的用户队列. 并进行第一次抽奖. 这里默认抽奖次数为1了. (不能再抽奖完成后再添加抽奖次数, 避免快速重复点击提交, 抽奖次数超过的情况)
  4. 改进:
  5. 奖品数量设置, 一个类似秒杀的数量检查, 避免礼品发放超出预算.

猜你喜欢

转载自www.cnblogs.com/stillstep/p/11056561.html