Java中如何运用Redisson解析分布式锁的工作机制?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2096个文字,预计阅读时间需要9分钟。
Redisson分布式锁与基于注释的锁的不同:
1.Redisson的分布式锁是基于Redis的分布式锁实现,基于注释的锁通常是通过在方法上添加特定的注解来实现锁的功能。
2.Redisson的分布式锁利用Redisson组件提供的RLock实现,而基于注释的锁可能使用不同的实现方式。
3.不同版本的Redisson实现锁的机制可能不同,具体的锁机制可能因版本而异。
Redisson分布式锁
之前的基于注解的锁有一种锁是基本redis的分布式锁,锁的实现我是基于redisson组件提供的RLock,这篇来看看redisson是如何实现锁的。
不同版本实现锁的机制并不相同
引用的redisson最近发布的版本3.2.3,不同的版本可能实现锁的机制并不相同,早期版本好像是采用简单的setnx,getset等常规命令来配置完成,而后期由于redis支持了脚本Lua变更了实现原理。
<dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.2.3</version> </dependency>
setnx需要配合getset以及事务来完成,这样才能比较好的避免死锁问题,而新版本由于支持lua脚本,可以避免使用事务以及操作多个redis命令,语义表达更加清晰一些。
本文共计2096个文字,预计阅读时间需要9分钟。
Redisson分布式锁与基于注释的锁的不同:
1.Redisson的分布式锁是基于Redis的分布式锁实现,基于注释的锁通常是通过在方法上添加特定的注解来实现锁的功能。
2.Redisson的分布式锁利用Redisson组件提供的RLock实现,而基于注释的锁可能使用不同的实现方式。
3.不同版本的Redisson实现锁的机制可能不同,具体的锁机制可能因版本而异。
Redisson分布式锁
之前的基于注解的锁有一种锁是基本redis的分布式锁,锁的实现我是基于redisson组件提供的RLock,这篇来看看redisson是如何实现锁的。
不同版本实现锁的机制并不相同
引用的redisson最近发布的版本3.2.3,不同的版本可能实现锁的机制并不相同,早期版本好像是采用简单的setnx,getset等常规命令来配置完成,而后期由于redis支持了脚本Lua变更了实现原理。
<dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.2.3</version> </dependency>
setnx需要配合getset以及事务来完成,这样才能比较好的避免死锁问题,而新版本由于支持lua脚本,可以避免使用事务以及操作多个redis命令,语义表达更加清晰一些。

