令牌机制实现秒杀功能
利用定时任务(或数据库作业)将某些商品在规定时间之后要开启秒杀,根据库存量同步到缓存(Redis)中。根据每一个商品产生对应的token数量,
1.Redis缓存采用 中的List数据类型存储每个商品的令牌。(采用List数据类型存储的原因主要是每一个线程从List中pop时是单线程处理的,所以每一个线程拿到的令牌就不可能是同一个了)
2.内存缓存需要加上lock保证读取的个商品的令牌是唯一的
在秒杀期间,每一个用户都去获取对应商品中的令牌(判断令牌是否有效-非空判断,如果是已经被支付过的token就不能再次被抢购)
超时未支付,归还令牌 支付成功,产生订单,标记当前令牌已经被支付,同时删除当前令牌。
商城秒杀功能实现
最新推荐文章于 2023-07-19 09:42:13 发布