10分钟带您熟悉db乐观锁分布式锁设计方案
Posted 栗子~~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了10分钟带您熟悉db乐观锁分布式锁设计方案相关的知识,希望对你有一定的参考价值。
前言
如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!
10分钟带您熟悉db乐观锁【分布式锁设计方案】
01 db 乐观锁:
概念: 乐观锁是一种很佛性的实现方式,在并发场景下,乐观锁的设计思路是每次从数据库中获取数据的时候都是最新的,并在这之前总认为没有其他线程对该数据进行修改,因此不会上锁,但是在更新时,会判断其他线程在这之前有没有对数据进行修改,通常用"版本号version"机制来实现。
02 整体流程:
03 核心sql伪代码:
update table set version = version +1 where id = #{id} and version=#{version}
04 核心伪代码:
if(0<update(vo)){
业务逻辑
}
05 核心步骤:
在于获取数据记录时,需要把version字段获取出来,在更新数据记录时需要将version作为匹对条件,并同时将version+1,最终实现version趋势递增的行为。
以上是关于10分钟带您熟悉db乐观锁分布式锁设计方案的主要内容,如果未能解决你的问题,请参考以下文章