redisson分布式锁原理
锁的原理
在Redisson中,使用key来作为是否上锁的标志,当通过getLock(String key)方法获得相应的锁之后,这个key即作为一个锁存储到Redis集群中,在接下来如果有其他的线程尝试获取名为key的锁时,便会向集群中进行查询,如果能够查到这个锁并发现相应的value的值不为0,则表示已经有其他线程申请了这个锁同时还没有释放,则当前线程进入阻塞,否则由当前线程获取这个锁并将value值加一,如果是可重入锁的话,则当前线程每获得一个自身线程的锁,就将value的值加一,而每释放一个锁则将value值减一,直到减至0,完全释放这个锁。因为底层是基于分布式的Redis集群,所以Redisson实现了分布式的锁机制。
redisson 的最基本的用法,
RLock lock = redisson.getLock(“lockName”);
try{
// 1. 最常见的使用方法
//lock.lock();
// 2. 支持过期解锁功能,10秒钟以后自动解锁, 无需调用unlock方法手动解锁
//lock.lock(10, TimeUnit.SECONDS);
// 3. 尝试加锁,最多等待2秒,上锁以后8秒自动解锁
boolean res = lock.tryLock(2, 8, TimeUnit.SECONDS);
if(res){ //成功
//处理业务
}
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
//释放锁
lock.unlock();
}
redisson分布式锁原理相关推荐
- 一文掌握Redisson分布式锁原理|干货推荐
ReentrantLock 重入锁 在说 Redisson 之前我们先来说一下 JDK 可重入锁: ReentrantLock ReentrantLock 保证了 JVM 共享资源同一时刻只允许单个线 ...
- Redis进阶- Redisson分布式锁实现原理及源码解析
文章目录 Pre 用法 Redisson分布式锁实现原理 Redisson分布式锁源码分析 redisson.getLock(lockKey) 的逻辑 redissonLock.lock()的逻辑 r ...
- Redisson实现分布式锁原理
Redisson实现分布式锁原理 一.高效分布式锁 当我们在设计分布式锁的时候,我们应该考虑分布式锁至少要满足的一些条件,同时考虑如何高效的设计分布式锁,这里我认为以下几点是必须要考虑的. 1.互斥 ...
- Redisson 实现分布式锁原理
Redisson实现分布式锁 有关Redisson作为实现分布式锁,总的分3大模块来讲. 1.Redisson实现分布式锁原理 2.Redisson实现分布式锁的源码解析 3.Redisson实现分布 ...
- Redisson分布式锁实战-2:解决wait_time之坑
我们一起来分析一下原因,我们获取锁之后,我们只打印了一个日志,然后从配置文件里面拿到一个hour,然后就结束了,结束之后就来到finally里边,而这个时间并没有执行SQL语句,所以他的时间会非常非常 ...
- 年轻人,看看 Redisson 分布式锁—可重入锁吧!太重要了
作者 | 李祥 责编 | 张文 来源 | 企鹅杏仁技术站(ID:xingren-tech) 引言 作为后端开发,对于所谓的线程安全.高并发等一系列名词肯定都不会陌生,相关的一些概念及技术框架是面 ...
- Redis实战——Redisson分布式锁
目录 1 基于Redis中setnx方法的分布式锁的问题 2 Redisson 2.1 什么是Redisson 2.2 Redisson实现分布式锁快速入门 2.3 Redisson 可重入锁原理 什 ...
- redisson分布式锁,实战
目录 什么时候用分布式锁? 分布式锁入门 超时设置 释放了不是自己加的锁 正确设置锁超时 加解锁代码位置有讲究 实现可重入锁 Redis Hash 可重入锁 主从架构带来的问题 什么是 Redlock ...
- Redis:Redisson分布式锁的使用(推荐使用)
Redis:Redisson分布式锁的使用(生产环境下)(推荐使用) 关键词 基于NIO的Netty框架,生产环境使用分布式锁 redisson加锁:lua脚本加锁(其他客户端自旋) 自动延时机制:启 ...
最新文章
- 9-7NOIP模拟赛总结
- java web 哪些方法不能被从写_JAVA_WEB面试题
- 解读ASP.NET 5 MVC6系列(17):MVC中的其他新特性
- 计算机组成原理码质变换,计算机组成原理负数的8421码
- 雅礼集训 2017 Day1
- PHP之MVC项目实战(二)
- github操作笔记191021
- [转]Java5泛型的用法,T.class的获取和为擦拭法站台
- java 对象回收_如何处理JAVA大量对象回收问题?
- 【高校联合主办| SCI、EI 快检索】物联网,机器学习,网络安全,通信技术,算法,微芯片等计算机多主题征稿!...
- 如何在线伪造邮箱发件人,用任意邮箱发送邮件
- WebLogic的下载和安装
- FPGA:生成占空比可调的PWM波
- [转] 花6小时整理的网上最全的系统服务,想PF降到50以下的进,经典中的经典
- 如何用计算机作图并求斜率,简单斜率分析以及作图
- PS 2021锁死各项AI新技术!用起来比美图秀秀更简单,几个键搞定老照片修复、变妆、绘画风格转换...
- 无老师作文巨讲堂连载【2015年上半年全集】|托福作文满分必备
- Java 优惠券最优使用实现
- 利用指针写一份学生信息管理系统
- 独家专访比尔·盖茨实录:这些钱对我都是多余的(中英文)