日均百亿红包架构

本文探讨了微信红包架构中的核心问题,包括二倍均值拆包算法以保证红包分配相对均匀,解决并发抢红包问题采用的无锁算法和预分配策略,以及在大规模并发下如何通过多级缓存和异地多活架构保证系统的稳定性和公平性。文中还指出,虽然Lua脚本可以提高效率,但微信并未完全依赖它,而是通过自研CKV缓存框架实现类似功能,并结合MQ确保数据最终一致性。
摘要由CSDN通过智能技术生成

四大功能

包、发、抢、拆

发红包出现的问题

5个人抢红包

抢到最少1分,万一第一个人抢到99.5,剩下几个人分一点点钱,不合适。

算法一个人不能绝对的多,尽可能平均。

二倍均值拆包算法

抢的并发问题

选择无锁算法。然后预分配红包

支付的时候就提前算好了,支付金额就提前算好暂存了,然后抢的时候直接查就行。

放到redis的list列表去,

张三抢10元,李四抢20元

rp是list列表key 188是红包id,红包从左到右逐一放进去

lpop从右边出队列

HGETALL 查哈希结构 所有的值 key value

  • 14
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值