在很早很早之前,写过一篇文章介绍过Redis
中的red lock
的实现,但是在生产环境中,笔者所负责的项目使用的分布式锁组件一直是Redisson
。Redisson
是具备多种内存数据网格特性的基于Java
编写的Redis
客户端框架(Redis Java Client with features of In-Memory Data Grid
),基于Redis
的基本数据类型扩展出很多种实现的高级数据结构,具体见其官方的简介图:
本文要分析的R(ed)Lock
实现,只是其中一个很小的模块,其他高级特性可以按需选用。下面会从基本原理、源码分析和基于Jedis
仿实现等内容进行展开。本文分析的Redisson
源码是2020-01
左右Redisson
项目的main
分支源码,对应版本是3.14.1
。