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

系列文章目录



前言

在这里插入图片描述

一、业务描述

在这里插入图片描述


二、需求分析

在这里插入图片描述


三、架构设计

在这里插入图片描述
难点
在这里插入图片描述

关键点

在这里插入图片描述

拆红包算法 二倍均值算法

在这里插入图片描述

图解

在这里插入图片描述


四、编码实现 RedPackageController

整体思路:

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

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

拆红包算法:二倍均值算法,每次拆分后塞进子红包的
金额 = 随机区间(0,(剩余金额M ÷ 剩余红包个数N)* 2)
计算好后放入list内

发红包代码

在这里插入图片描述

进入拆分红包算法

在这里插入图片描述

抢红包代码

在这里插入图片描述


五、多学一手

批量删除redis里多余的红包记录
在这里插入图片描述
red* 就是red开头的key
全部删除
在这里插入图片描述


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值