php+redis队列流程

本文介绍如何利用Redis的List类型和hash特性进行商品限购,结合MySQL事务处理高并发下单场景,确保库存准确,避免超卖。通过llen()判断库存,使用unsigned类型防止SQL执行失败,遇到异常时利用rollback()回滚事务并清理Redis数据。

redis

1.链接redis 使用list类型///////
//根据Redis hash特性, 设置成功返回1, 旧值被覆盖则返回0, 用来控制同一用户多买现象用户限制购买一件也可以用hash类型存储数据
2. 用户请求 获取list 长度 llen() 大于指定长度则返回已购空
3. 满足要求则存入redis (当遇见高并发情况时会出现llen()的长度大于指定长度不用怕下面有保险措施)
4. 创建订单 (商品表的库存字段用unsigned 无符号数字正整数 当数字小于0时也就是负数就会执行sql失败)
5. 这时mysql 事务就可以上场了rollback()回滚事务并且清除list中的当前用户数据
6. 突发情况若用户长时间不够买自动取消订单并清除list中的占位数据

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值