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

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

内容简介:以往在项目中涉及到分布式锁时,都是结合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


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

查看所有标签

猜你喜欢:

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

免费:商业的未来

免费:商业的未来

Chris Anderson / 中信出版集团 / 2015-10-1 / 35.40

《免费》,这是一个商业模式不断被颠覆、被改写的时代。一种商业模式既可以统摄未来市场,也可以挤垮当前市场——在我们这个现代经济社会里,这并不是一件不可能的事情。“免费”就是这样的一种商业模式,它代表了互联网时代的商业未来。 “免费”商业模式是一种建立在以电脑字节为基础上的经济学,而非过去建立在物理原子基础上的经济学。在原子经济中,随着时间的推移,我们周围的物品都在逐渐升值。但是在字节经济的网络......一起来看看 《免费:商业的未来》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

SHA 加密
SHA 加密

SHA 加密工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具