分布式锁——Redisson源码篇-加锁(一)
其实代码整体上可以发现实现可重入锁的方法还是比较简单的,学习成本相对比较低,使用起来也是比较简单的,对于分析可重入锁的部分从下面几个部分来大致的阅读
初始化锁对象
RLock lock = redisson.getLock("anyLock");
RLock的整体类图
可以注意到,其实像RedissonFairLock等等都是继承的RedissonLock
初始化了一个RedissonLock的对象,里面有个核心就是命令执行器,需要额外关注的就是internalLockLeaseTime
和entryName
CommandAsyncExecutor
看意思这个是一个命令异步执行器
- slot:slot就是cluster中的槽
public int calcSlot(String key) {
if (key == null) {
return 0;
}
int start = key.indexOf('{');
if (start != -1) {
int end = key.indexOf('}');
if (end !=