目录
什么是分布式锁
锁是对同一时间只能有一个线程访问某个资源的限制,synchronized关键字虽然可以处理多线程问题,保证同一时间只有一个线程访问到某个资源,做不到粗细度控制,只适用于单机系统,对分布式集群系统就满足不了。Java虽然提供了Lock接口,可以做到粗细度控制,却依然只适用于单击系统。现在越来越多的项目,为了追求性能和并发,采用了soa架构,微服务架构,于是就会出现多个模块单独的服务。如何保证多个节点的同步执行,就用到了分布式锁。
分布式锁有哪些
Redis分布式锁
官方叫做RedLock
算法,是Redis官方支持的分布式锁算法。这个分布式锁有3个重要的点:互斥(只能有一个客户端获取锁)、不能死锁、容错(只要大部分Redis节点创建了这把锁就可以)。Redis普通的分布式锁实现方式,
SET key value [EX seconds] [PX milliseconds] NX //创建一个 key,这样就算加锁
NX
:表示只有key
不存在的时候才