
之前看很多人手写分布式锁,其实 Spring Boot 现在已经做的足够好了,开箱即
用,支持主流的 Redis、Zookeeper 中间件,另外还支持 JDBC。
本篇栈长以 Redis 为例(这也是用得最多的方案),教大家如何利用 Spring Boot
集成 Redis 实现缓存,如何简单、快速实现 Redis 分布式锁。
分布式锁介绍
Spring Boot 实现 Redis 分布式锁在 spring-integration 这个项目中,参考:
https://docs.spring.io/spring-
integration/docs/5.3.1.RELEASE/reference/html/redis.html#redis
-lock- registry
首先来看下 LockRegistry 锁注册接口的所有实现类结构图:
DefaultLockRegistry 就是纯单机的可重入锁,PassThruLockRegistry 是一个空
实现类,也都没有什么利用价值。
Spring Integration 4.0 引入了基于 Redis 的分布式锁:RedisLockRegistry,并
且从 5.0 开始实现了 ExpirableLockRegistry 接口,用来移除超时且没有用的锁。