毕业设计做的是一个在线抢购的平台,想问一下怎么才能实现抢购的功能,主要是要保证数据一致性。。。抢着抢着就变成了 -1.。。好蛋疼。。求教
最简单的做法,用 redis . 以商品 id 为 redis 键,比如 id 是 1. 设置 100 个库存 set 1 100 用 DECR 减库存 decr 1 , 返回如果小于 0,那么库存不足,用 incr 1 把库存加回 0,再返回给客户端库存不足。
不久之前我给一个作坊公司做过一个抢购系统,在他们的一个特别垃圾的架构上一个人花了两周时间做出来的,确实不是那么好做,那公司现在还拿这功能到处吹了,就这还嫌开发进度慢,早知道这玩意儿这么值钱我就去北京做了
设置一个队列,把队列的长度设置为商品库存量的长度。然后请求进来直接放入队列,超出队列长度的返回抢购结束。然后队列的用户慢慢执行库存减少、订单生成、订单支付等操作。