【redis】案例–迷你版微信抢红包

  • Post author:
  • Post category:其他




系列文章目录





前言



在这里插入图片描述



一、业务描述

在这里插入图片描述




二、需求分析

在这里插入图片描述




三、架构设计

在这里插入图片描述

难点

在这里插入图片描述



关键点

在这里插入图片描述



拆红包算法 二倍均值算法

在这里插入图片描述



图解

在这里插入图片描述




四、编码实现 RedPackageController



整体思路:


发红包时

:红包金额、红包个数传入后端,根据拆红包算法得出每个红包里的金额,存入redis的list


抢红包时

:抢红包的用户ID传入后端,先判断ID在hash里是否存在,不存在才能抢,根据list的lpop随机弹出金额,并利用hash记录抢的金额和用户ID,以便记录和判断


拆红包算法

:二倍均值算法,每次拆分后塞进子红包的

金额 = 随机区间(0,(剩余金额M ÷ 剩余红包个数N)* 2)

计算好后放入list内



发红包代码

在这里插入图片描述



进入拆分红包算法

在这里插入图片描述



抢红包代码

在这里插入图片描述




五、多学一手

批量删除redis里多余的红包记录

在这里插入图片描述

red* 就是red开头的key

全部删除

在这里插入图片描述




版权声明:本文为qq_44739758原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。