Redisson综合中间件

Posted 栗子~~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redisson综合中间件相关的知识,希望对你有一定的参考价值。

文章目录

前言

  如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
  而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!


Redisson综合中间件

01 概述

 Redisson是一款免费、开源的中间件,是一款基于Redis实现、拥有一系列分布式系统功能特性的工具包(分布式对象、分布式集合、分布式锁及分布式服务等诸多功能特性),可以说是实现分布式架构中缓存中间件的最佳选择。


02 Redisson的作用

 最大的作用就是作为单机多线程并发程序工具包获得了协调分布式多机多线程并发系统的能力,大大的降低了设计和研发大规模分布式系统架构的难度。


03 Redisson的官网地址

https://redisson.org


04 Redisson的优点

  Redisson的底层基础架构采用基于NIO(非阻塞式的输出输入)的netty框架实现数据的传输,具有更为高效的数据传输性能,不仅仅可以作为Redis底层驱动客户端,还可以实现Redis命令以同步、异步】异步流甚至是管道的形式发送消息等功能。


05 Redisson的功能特性

  1. 多种连接方式
  2. 数据序列化
  3. 集合数据分片
  4. 分布式对象
  5. 分布式集合
  6. 分布式锁
  7. 分布式服务

05::01 多种连接方式

多种方式连接Redisson所在服务节点,即同步连接、异步连接、异步流连接方式等等。


05::02 数据序列化

即对象在传输过程中,序列化和反序列化方式。


05::03 集合数据分片

Redisson可以通过自身的分片算法,将一个大集合拆分为若干个片段,然后均匀的分步到集群各个节点上,以保证每个节点分到的片段大体相同。


05::04 分布式对象

Redisson持有大部分数据组件(布隆过滤器、BitSet、基于订阅发布的话题功能)。


05::05 分布式集合

和原生的缓存中间件Redis所提供的数据结构类似。
Redis 的5种数据类型


05::06 分布式锁(重要)

提供了可重性锁、读写锁、一次性锁的功能。


05::06::01 Redisson分布式锁相比Redis锁的优点

Redis分布式锁讲解:
20分钟带您熟悉Redis分布式锁设计方案
Redis分布式锁缺点:

  1. 执行Redis的原子操作时、要设置EXPIRE,即Reds的key的TTL,不同的业务场景设置的过期时间是不同的,如果设置不当,很可能会影响系统与Redis服务的性能。
  2. Redis 原子操作SETNX获取分布式锁的时候没有"可重入"特性,即当一个线程获得锁时,其他线程获取锁失败,永久的失败,本质上来说是没毛病的,但有些业务场景可能要求线程具有"可重入"特性,这时候,SETNX操作就不满足于当下的需求,就得需要一些配套的逻辑进行处理,即while(true)的代码,但这种方式即不优雅,也很有可能造成应用系统"卡顿"的风险。
  3. 当Redis原子性操作在【SETNX之后、EXPIPR之前】时,Reids服务发生宕机,同时应用服务出现问题导致该key未被删除,那么造成的影响最终会出现死锁线程,即永远没有线程可以获取到该key值的锁(未加TTL的同时锁也未被删除,导致其永久存在)。

而Redisson的分布式锁很好的完善了上述缺点。


05::06::01 Redisson分布式锁相关知识
  • 可重入锁:指的是当前线程没有获取到共享资源的分布式锁的时候,等待一段时间,重新获取。
  • 一次性锁:指的是当前线程没有获取到共享资源的分布式锁的时候,如果成功往下执行,失败就永久失败。

06 经典应用场景

  1. 布隆过滤器
  2. 延迟队列
  3. 分布式锁

07 扩展-布隆过滤器的优缺点

优点:不需要开辟额外的内存空间,从而省下了存储空间。
缺点:在判断元素是否在集合中时,有一定的误判率,并且添加到布隆过滤器的元素是无法删除的。

以上是关于Redisson综合中间件的主要内容,如果未能解决你的问题,请参考以下文章

综合中间件Redisson实战

Java中间件 - Redisson简介

redisson spring boot starter 做分布式锁

Day412.分布式锁redisson与缓存 -谷粒商城

Day412.分布式锁redisson与缓存 -谷粒商城

基于Redis实现分布式锁-Redisson使用及源码分析面试+工作