什么是分布式锁
在分布式部署的情况下,锁是多进程之间共享的, 分布式锁就是要保证锁资源的唯一性,可以在多进程之间共享
为什么要使用分布式锁
分布式锁的设计目标
可以保证在分布式部署的应用集群中,同一个方法在同一操作只能被一台机器上的一个线程执行。
这把锁要是一把可重入锁(避免死锁)
这把锁最好是一把阻塞锁(根据业务需求考虑要不要这条)
这把锁有高可用的获取锁和释放锁功能
这把锁获取锁和释放锁的性能要好…
redis如何实现分布式锁
Redis为单进程单线程模式,采用队列模式将并发访问变成串行访问,且多客户端对redis的连接并不存在竞争关系。其次Redis提供一些命令SETNX,GETSET,可以方便实现分布式锁机制
要保证的高可用(1一个业务节点宕机,不产生死锁;2不会被其他线程释放,谁家的锁只能由谁释放;3.保证redis加锁的原子性 4.可重入性等等)
分布式锁的使用场景
数据高并发的读写,比如电商网站的秒杀、特价、大促等出现访问量激增在高并发下,防止库存超卖
分布式锁的发展及其原理
redLock如何解决集群的问题
分布式锁如何优化
分段加锁