天天看點

如何用MySQL實作一把分布式鎖?INFO一、原理

文章目錄

  • INFO
  • 一、原理
  • 二、代碼實作
    • 1、SQL
    • 2、鎖工具類
    • 3、使用

INFO

作者: 程式設計界的國小生

日期: 2021/09/05

修訂: 初版,未修訂。2021/09/05

版權: 内部資料,切勿洩漏,違者必究。

一、原理

mysql分布式鎖主要實作核心就是利用唯一索引插入重複資料會報錯來實作。插入沖突後就代表并發了,然後就休息一段時間繼續重試,或者不休息直接CAS進行重試,插入成功後就代表搶鎖成功,執行完後需要釋放鎖。(如果沒看明白的話不要緊,下一篇會介紹mysql實作分布式鎖的核心僞代碼以及原理)

不符合【分布式鎖必須具備的東西】中的如下兩點:

  • 高性能(Mysql性能肯定是低下的)
  • 可重入(當然搞個計數器也可以實作可重入,但是高性能是得不到保障)

需要注意如下幾點:

  • 每個系