各位大大,问题大概是这样的,因为项目中设计一个比较简单的类似于秒杀的东西
但几经搜索之后 都说使用redis的原子性 采用队列来处理, 然后去看了一下redis的一些命令
又结合了别人的一些代码 大致思路是以下这样
我有几个问题
1.什么时候触发 左进右出 取数据这个流程呢 ,条件是什么呢
2.还是说 把商品数量提到 检查队列长度之前??
3.或者说我的思路 本身就有很大漏洞或者 歪了
请不留情 斧正
//用户进入
//获取用户信息
//连接redis
//加入队列msList
//这个位置检查缓存的商品数量?? 为0就直接返回了 不用进行下面的操作?
//检查队列长度
//--1.大于200就返回 抢购人数过多,跳转抢购结束页面,结束,终止秒杀
//--2.小于等于就加入队列
//判断等于200触发下面操作???
//左进右出 取数据
//----查询商品数量为num
//-------1.无则 加入redis缓存
//-------2.有则判断是否大于0
//----------1.小于等于就退出 ,跳转库存不足页面,结束
//----------2.无则判断
//-------------进入的用户左进右出
//-----------------事务
//-----------------1.插入成功,num-1,返回用户消息,结束
//-----------------1.插入失败,回滚,返回用户消息,结束
//释放redis
//订单超时,库存增加??
LEATH