1. 需求:
扣除余额,或者库存(一般先扣缓存,再扣库存, 库存扣除失败,回滚缓存,redis的incr语句),满足高并发需求
2. 设计SQL
示例sql, 这边以扣除余额为例(无缓存),mysql会根据id进行行锁处理,高并发下没有问题
update xxx_account
set
balance = balance - #{chargeCost} ,
day_balance = day_balance - #{chargeCost}
where
balance >= #{chargeCost}
and
day_balance >= #{chargeCost}
and
id = #{id}