​高性能分布式锁的另一种实现:Redisson

栏目: 数据库 · 发布时间: 5年前

内容简介:以往在项目中涉及到分布式锁时,都是结合redisTemplate采用类原生的方式编写,代码量不少,还容易出现锁死的情况,近来无意间在看到某篇文章中发现了redisson,如获珍宝,工具谱中又多了一个利器(公众号回复关键字“工具”)。分布式锁的关键点在于加锁与解锁其间能不能保持连续性,redisson为我们提供了一种比较优雅简单的方式:在分布式锁的基础上还提供了

以往在项目中涉及到分布式锁时,都是结合redisTemplate采用类原生的方式编写,代码量不少,还容易出现锁死的情况,近来无意间在看到某篇文章中发现了redisson,如获珍宝,工具谱中又多了一个利器(公众号回复关键字“工具”)。

分布式锁的关键点在于加锁与解锁其间能不能保持连续性,redisson为我们提供了一种比较优雅简单的方式:

在分布式锁的基础上还提供了 联锁(MultiLock读写锁(ReadWriteLock公平锁(FairLock红锁(RedLock信号量(Semaphore可过期性信号量(PermitExpirableSemaphore闭锁(CountDownLatch 这些实际当中对多线程高并发应用至关重要的基本部件。正是通过实现基于 Redis 的高阶应用方案,使Redisson成为构建分布式系统的重要工具。

​高性能分布式锁的另一种实现:Redisson

题图 from unsplash

Redisson基于NIO的Netty框架,同其他Redis Java客户端有着很大的区别,相比之下其他客户端提供的功能还仅仅停留在作为数据库驱动层面上,比如仅针对Redis提供连接方式,发送命令和处理返回结果等。

基于 Java 实用 工具 包中常用接口,为使用者提供了一系列具有分布式特性的常用工具类。使得原本作为协调单机多线程并发程序的工具包获得了协调分布式多机多线程并发系统的能力,大大降低了设计和研发大规模分布式系统的难度。同时结合各富特色的分布式服务,更进一步简化了分布式环境中程序相互之间的协作。而其它redis java客户端如果要使用一些高层次的应用则只能依靠使用者自行实现,不太友好。

Redisson实现分布式锁仅仅是一个方面的应用,其它还有很多便捷的用法。本篇仅是提供一个引子,更多详细文档介绍参考项目介绍的wiki内容。

扩展阅读:

Redis的三个框架: Jedis,Redisson,Lettuce

Jedis 地址:https://github.com/xetorthio/jedis,是Redis的Java实现客户端,提供了比较全面的Redis命令的支持。 SpringBoot1.x系列中默认采用的是jedis。

Redisson 官网地址:https://redisson.org/,实现了分布式和可扩展的Java数据结构。

Lettuce 官网地址:https://lettuce.io/,高级Redis客户端,用于线程安全同步,异步和响应使用,支持集群,Sentinel,管道和编码器。 SpringBoot2.x系列中抛弃了原有的jedis,默认采用lettuce。

​高性能分布式锁的另一种实现:Redisson


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

增长黑客

增长黑客

范冰 / 电子工业出版社 / 2015-7-1 / CNY 59.00

“增长黑客”这一概念近年来兴起于美国互联网创业圈,最早是由互联网创业者Sean Ellis提出。增长黑客是介于技术和市场之间的新型团队角色,主要依靠技术和数据的力量来达成各种营销目标,而非传统意义上靠砸钱来获取用户的市场推广角色。他们能从单线思维者时常忽略的角度和难以企及的高度通盘考虑影响产品发展的因素,提出基于产品本身的改造和开发策略,以切实的依据、低廉的成本、可控的风险来达成用户增长、活跃度上......一起来看看 《增长黑客》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换