系列文章目录
文章目录
- 系列文章目录
- 前言
- 在这里插入图片描述
- 一、业务描述
- 二、需求分析
- 三、架构设计
- 关键点
- 拆红包算法 二倍均值算法
- 图解
- 四、编码实现 RedPackageController
- 整体思路:
- 发红包代码
- 进入拆分红包算法
- 抢红包代码
- 五、多学一手
前言
一、业务描述
二、需求分析
三、架构设计
难点
关键点
拆红包算法 二倍均值算法
图解
四、编码实现 RedPackageController
整体思路:
发红包时
:红包金额、红包个数传入后端,根据拆红包算法得出每个红包里的金额,存入redis的list
抢红包时
:抢红包的用户ID传入后端,先判断ID在hash里是否存在,不存在才能抢,根据list的lpop随机弹出金额,并利用hash记录抢的金额和用户ID,以便记录和判断
拆红包算法
:二倍均值算法,每次拆分后塞进子红包的
金额 = 随机区间(0,(剩余金额M ÷ 剩余红包个数N)* 2)
计算好后放入list内
发红包代码
进入拆分红包算法
抢红包代码
五、多学一手
批量删除redis里多余的红包记录
red* 就是red开头的key
全部删除