本站长提供网站个性化定制、网站二次修改开发及服务器环境配置等技术服务,如果需要请 点击 加我 QQ 说你的需求。

抢红包利用redis处理高并发

PHP高级 小凡 105℃ 0评论

抢红包的业务流程大概是设置固定金额及数量的红包,比如1.68元20000个、3.8元20000个、8.8元1000个。

考虑高并发的情况下,我们需要有redis消息队列实现,具体方法如下:

1、创建抢红包活动,将5万份红包随机打乱,并放入redis中,使用队列list类型存储

lpush hongbao 每份红包…

2、访客来抢红包,考虑瞬间会有很多用户访问,这边需要对访客做个队列

lpush users 每个用户…

3、有了两个队列,需要跑一个定时任务,给每个用户分配一个红包

rpop users 弹出一个用户,并rpop hongbao 弹出一个红包。分配的结果存入结果队列。分配时还需要判断该用户是否已中奖,因此中奖时可以另外将已中奖用户存入redis的哈希类型。

4、另外一个定时任务去跑结果队列,将结果入库。

 

 

转载请注明:小凡部落 » 抢红包利用redis处理高并发

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址