如何实现影院购票操作,防止出现一票多买的现象?

新手上路,请多包涵

近期有个项目是剧院票务管理系统,但够票模块不知道该怎么实现,起初采用MySQL数据库的事务和加锁机制,但还是会出现一些问题,最后想了想可不可以用Redis的消息队列,但不知道具体如何去实现,希望哪位大佬可以给一些思路或见解。万分感谢。

阅读 3.5k
3 个回答

12306是怎么实现的,每次买之前都去数据库查一下,看看状态对不对。状态对了,就让你买。不对就显示被预定了

行级锁不就OK了

用 redis 的 incrdecrincrby 控制库存的增减就好了,不用那么复杂。


简单点说,生产库存的时候,redis 中同步也生产了库存,用户购买请求过来只需加减 redis 中的库存,redis 操作成功后再同步执行 db 事务,或者引入消息队列异步执行 db 事务。使用 redis 可以解决并发超卖的原因在于 redis 是单进程单线程同步操作,理解这个你就可以随意去设计了,秒杀操作也如此。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题