REDIS09_分布式锁的概述、加锁使用sexnu、解锁使用lua脚本保证原子性、引发的问题思考(一)

①. 分布式锁的概述


  • ①. 锁的种类


单机版同一个JVM虚拟机内,synchronized或者Lock接口


分布式不同个JVM虚拟机内,单机的线程锁机制不再起作用,资源类在不同的服务器之间共享了


②. 一个靠谱分布式锁需要具备的条件和刚需 掌握


独占性:任何时刻只能有且仅有一个线程持有


高可用:若redis集群环境下,不能因为某一个节点挂了而出现获取锁和释放锁失败的情况

防死锁:杜绝死锁,必须有超时控制机制或者撤销操作,有个兜底终止跳出方案


不乱抢:防止张冠李戴,不能私下unlock别人的锁,只能自己加锁自己释放。


重入性:同一个节点的同一个线程如果获得锁之后,它也可以再次获取这个锁。


③. setnx key value(差评,setnx+expire不安全,两条命令非原子性的)


set key value [EX seconds] [PX milliseconds] [NX|XX]


REDIS09_分布式锁的概述、加锁使用sexnu、解锁使用lua脚本保证原子性、引发的问题思考(一)


REDIS09_分布式锁的概述、加锁使用sexnu、解锁使用lua脚本保证原子性、引发的问题思考(一)




上一篇:JQUERY 动态时钟


下一篇:javascript基础学习--HTML DOM