抢购场景下,redis原子性控制超卖问题

  • 提问时间: 1个月前
  • 关注数: 0 / 浏览数: 46 / 回答数: 1

抢购场景下,既然redis是单线程,那为什么非要配合lua呢,直接在代码里执行redis->eval或者redis->incrby不就能控制超卖么?

 

 

小花花
1个月前提问
1 个回答
  • 董俊俊

    你的思路不错,可以继续去想下直接incrby改会有什么问题,老师提供的思路只是其中一个方案,真正场景实现肯定会有非常多的方案,需要大家自己思考。

    redis->eval本身就是执行lua脚本,redis->incrby理论上也可以防止边界条件的发生,不会造成超卖,因为incrby就实现了查询+修改的原子操作,但是有一点点小缺点就是,不能做到只要一超卖了就直接终止+1。

撰写答案
  • 相似问题