请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

redis库存和数据库库存不一致的问题

有个问题请教一下,通过redis扣减库存的业务中,redis扣减库存成功后没有走到新增订单的逻辑服务宕机了,导致订单新增失败了,这个时候redis的库存就多扣了一个,mq会产生一条未知状态的消息,我们采取对超过15分钟未处理的消息,就把redis的库存加一,这个时候就会有超卖的问题,此时数据库的库存是正确的,但是redis里的库存会一直是不准确的,请问这种情况要怎么办呢,一般是采取什么机制把数据库的库存同步到redis呢

正在回答 回答被采纳积分+3

1回答

龙虾三少 2020-09-25 12:44:40

数据库和redis之间没有办法保证绝对的强一致 所以宁可少卖 不要超卖

0 回复 有任何疑惑可以回复我~
  • 提问者 慕村24917 #1
    我们的场景是允许一定的负数的,但是负数不能太大,我想在消费者更新数据库的库存的时候,如果数据库的库存为0的话,就直接标记库存售罄,这样的话会不会有什么问题
    回复 有任何疑惑可以回复我~ 2020-09-25 16:40:16
  • 龙虾三少 回复 提问者 慕村24917 #2
    数据库操作是异步的 会有风险
    回复 有任何疑惑可以回复我~ 2020-09-26 09:38:01
  • 提问者 慕村24917 #3
    有办法保证最终一致性也行啊,但是如果中途宕机了,就对不上了
    回复 有任何疑惑可以回复我~ 2021-05-01 17:24:47
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信