我爱大可乐 的个人博客 / 0 / 5 / 创建于 2年前
本作品采用《CC 协议》,转载必须注明作者和本文链接
通过sku做锁,redis lua减库存
@zjason 我是这样测试的,假设有商品ABCDE五种,每次请求随机生成1-5个商品,每个商品随机数量,然后判断每个商品的数量,小于缓存则减少缓存数量,最后订单统计的数量+最后缓存的数量小于实际的总库存。没超,但是少卖了
两把锁,一把锁用于抢锁的锁 L1,强制让所有购买进程排队,进程 A 购买 1-2-3 三件商品,先拿到 L1,然后写入需要购买的商品sku:1,2,3,进程A 写完后,对 1,2,3同时加 SKU 锁,写入完成释放锁 L1,这时如果进程 B 购买 2,3,4,得先拿到 L1,拿完之后查看 L1 中数据,得知 2,3被锁了,那么就释放 L1,进入等待或者返回失败
我要举报该,理由是:
推荐文章: