①. 分布式锁的概述
- ①. 锁的种类
单机版同一个JVM虚拟机内,synchronized或者Lock接口
分布式不同个JVM虚拟机内,单机的线程锁机制不再起作用,资源类在不同的服务器之间共享了
②. 一个靠谱分布式锁需要具备的条件和刚需 掌握
独占性:任何时刻只能有且仅有一个线程持有
高可用:若redis集群环境下,不能因为某一个节点挂了而出现获取锁和释放锁失败的情况
防死锁:杜绝死锁,必须有超时控制机制或者撤销操作,有个兜底终止跳出方案
不乱抢:防止张冠李戴,不能私下unlock别人的锁,只能自己加锁自己释放。
重入性:同一个节点的同一个线程如果获得锁之后,它也可以再次获取这个锁。
③. setnx key value(差评,setnx+expire不安全,两条命令非原子性的)
set key value [EX seconds] [PX milliseconds] [NX|XX]