​高性能分布式锁的另一种实现: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


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

查看所有标签

猜你喜欢:

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

计算复杂性

计算复杂性

阿罗拉 巴拉克 / 骆吉洲 / 机械工业出版社 / 2016-1-1 / 129元

《计算复杂性的现代方法》是一部将所有有关复杂度知识理论集于一体的教程。将最新进展和经典结果结合起来,是一部很难得的研究生入门级教程。既是相关科研人员的一部很好的参考书,也是自学人员很难得的一本很好自学教程。本书一开始引入该领域的最基本知识,然后逐步深入,介绍更多深层次的结果,每章末都附有练习。对复杂度感兴趣的人士,物理学家,数学家以及科研人员这本书都是相当受益。一起来看看 《计算复杂性》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具