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乐观锁分布式锁设计方案的主要内容,如果未能解决你的问题,请参考以下文章

20分钟带您ZooKeeper 分布式锁设计实战

30分钟带您了解分布式锁

20分钟带你熟悉Redisson分布式锁设计方案

一篇文章30分钟带您了解分布式锁

30分钟带您熟悉Redisson综合中间件

分布式锁三种解决方案