MySQL 如何做分布式锁?

2022-08-02T17:16:55

⽅法⼀:
利⽤ Mysql 的锁表,创建⼀张表,设置⼀个 UNIQUE KEY 这个 KEY 就是要锁的 KEY,所以同⼀个 KEY 在 mysql
表⾥只能插⼊⼀次了,这样对锁的竞争就交给了数据库,处理同⼀个 KEY 数据库保证了只有⼀个节点能插⼊成功,
其他节点都会插⼊失败。
DB分布式锁的实现:通过主键 id 的唯⼀性进⾏加锁,说⽩了就是加锁的形式是向⼀张表中插⼊⼀条数据,该条数
据的 id 就是⼀把分布式锁,例如当⼀次请求插⼊了⼀条 id 为1 的数据,其他想要进⾏插⼊数据的并发请求必须等
第⼀次请求执⾏完成后删除这条 id 为1 的数据才能继续插⼊,实现了分布式锁的功能。
⽅法⼆:
使⽤流⽔号+时间戳做幂等操作,可以看作是⼀个不会释放的锁。

当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »