一、高并发执行
1.1 正常情况下
程序没有问题!!!
1.2 网络卡顿 时间延迟
数据库真正的结果为6,但是最后改为了10,发现了数据不一致性。
二 解决办法
2.1 写完删除缓存,每次查询数据库
又发生了问题!!!
2.2 延迟双删【不考虑】
不太确定sleep的时间不确定,不稳定,不能100%解决,延迟很高!!!!吞吐量低!!!
2.3 内存队列【不推荐】
对基于同一个Key的增删改查操作,放到一个内存队列里面,可以解决
性能:麻烦,效率低,并行的任务,串行化了
2.4 加锁操作【推荐】
问题解决:有别的线程来执行,必须等待锁的释放
全部操作,做了一个排队操作,100%不会出现错误
问题:效率低!!!!!
解决:分布式锁,性能低,没办法用,在并发场景下
2.5 Redisson读写锁【强力推荐ReadWriteLock】
读锁与读锁之间不互斥 ,可以并发执行
写锁与写锁会发生互斥,不可以并行
并发场景下,80%场景会发生读操作,20%会发生写操作
底层页实现了LUA脚本
适用于:读多写少的场景