多线程执行数据库MYSQL扣减库存问题分析与解决方案问题一:超卖问题二 死锁问题:通过redis如果redis挂了怎么办?
由于本人菜鸡,没接触过太大的并发量,只用过Redis那一套(Redis的写性能和读性能都远高于MySQL)多线程对数据库中的库存进行修改扣减的时候,会出现超卖或是死锁情况,如下:问题一:超卖当多个线程执行select然后再进行update时,由于mysql的select并未进行加锁,导致查询出的库存信息与实际的库存数量不一致,导致update时候一直扣减到了负数。package com.example.service;import java.sql.*;import java.uti