1.MySQL建立一张表,设置一个主键或者UNIQUE KEY,然后选则其中一个当锁的KEY

所以同一个KEY在MySQL表中就只能存在一个了,这样锁的竞争就交给了数据库,
处理同一个KEY数据库保证了一个节点能插入成功,其他都失败

2.DB分布式锁实现:通过主键ID或者唯一索引的唯一性进行加锁

加锁的方式其实就往表中新增一条数据,数据的ID就是一把锁
列如: 新增一条数据ID为1,其他想要插入数据必须等第一次请求执行完
然后删除这条ID为1的数据才能继续插入,实现了分布式锁

1
2
3
4
5
6
7
8
def lock :
exec sql: insert into locked-table (xxx) value (xxx)
if result == true:
return true
else:
return false
def unlock:
exec sql: delete from xxxTable where xxx_id = 'xxx_id'