分布式锁
程序员文章站
2022-03-05 09:54:41
...
分布式锁的实现
锁是用来解决什么问题的:synchronized、lock
多进程的架构:
1.资源共享竞争问题
2.数据的安全性
分布式锁的解决方案
1.怎么去获取锁
数据库
lock{
id int(11)
methodName varchar(100)
memo varchar(1000)
modifyTime timestamp
unique key mn(method) --唯一约束
}
try{
exec
insert into lock (methodName, memo) values (‘method’, ‘desc’);
return true;
}catch(DuplicationException e){
return false
}
delete 释放锁
非重入锁
这是悲观锁
zookeeper
/locker
client A seq
client B seq
client C seq
最小的节点获得锁,其它等待
watch机制
redis
setnx命令
2.怎么释放锁
redis性能关于多路复用机制
lua语言
lua语言在redis中的应用