Skip to main content

9、抢红包

Y-aong...Less than 1 minuteredis抢红包

9、抢红包

一、需求分析

  • 节假日发红包抢红包,高并发业务
  • 一个大红包分为多个小红包
  • 每个人只可以抢一次,抢完一个就不能再抢,直到总数为0
  • 红包过期,红包退回

二、问题点

拆分算法如何

每个人只可以抢一次,次数限制

原子性,没抢到一个红包就要减少一个库存

三、架构设计

  • 发红包
    • 拆分红包
      • 金额总和为红包金额
      • 每个人都可以抢到红包
      • 保证每个人的金额几率相等
  • 抢红包
  • 记红包

红包的拆分算法、红包的存储使用list,并设置红包的过期时间

用户抢红包使用Lpush 把红包从redis中出列

记红包使用hash,记录用户的id和红包金额

用户抢过之后不能在抢

Comments
  • Latest
  • Oldest
  • Hottest
Powered by Waline v2.15.8