折扣爆料
折扣好货实时更新
这2个问题不好解决的原因是redis的使用范围定义。这2个场景中,若仅用于抗高并发,当做缓存使用,不忘记引入目的,则有助于简化问题。
1.电商库存扣减问题
超卖:卖的商品多于库存
少卖:卖的商品少于库存
原因在于redis和db的数据不一致。
如何解决?
(1)若只使用db则不存在此问题。靠事务解决。
(2)若同时使用redis和db,则超卖靠数据库校验保底,少卖靠db回写redis保持数据一致。
2.优惠券后台批量发放问题
多发:优惠券系统超时,导致多次发放
少发:某次优惠券系统故障,未到账
原因在于发放系统和优惠券系统数据不一致
如何解决? 这里后台发放不使用redis。
(1 )发放系统和优惠券系统使用同一套db,靠事务解决。
(2 )若不得使用同一套db,则多发靠上游发送唯一流水号,下游做幂等解决;少发靠上游重试解决。
孜孜不倦,每日一学