当前位置: 首页 > news >正文

Redisson集成SpringBoot

前言:Redisson集成SpringBoot主要有两种方式,一个是使用redisson-spring-boot-starter依赖(优先推荐),毕竟springboot主打的就是约定大于配置,这个依赖就是为springboot准备的。

再一种方式就是引入redisson原始依赖,自己写配置类注入到spring容器中,这种太麻烦没必要。

这里主要记录一下第一种方式,先看官网介绍redisson/redisson-spring-boot-starter at master · redisson/redisson · GitHub

首先关于版本对应关系的问题,目前发现sprinBoot2.3.x版本使用redisson-spring-boot-starter 3.30.0版本是没问题的。
官方说了:redisson-spring-boot-starter与Spring Boot的版本兼容是通过redisson-spring-boot-starter中引入的redisson-spring-data模块来做的,如果需要,降级redisson-spring-data模块以支持以前的Spring Boot版本。

 也就是说,如果发现不兼容问题,可以通过降低redisson-spring-data依赖的版本来解决。

具体做法就是:引入依赖后,排出高版本的redisson-spring-data,再引入低版本的即可。

下图可以看到,redisson-spring-boot-starter的pom文件中引入了redisson-spring-data-x。

下面开始

一、添加依赖

        <!-- redisson 依赖 --><dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId><version>3.30.0</version></dependency>

二、配置文件添加配置

配置文件主要有两种方式:

第一种是直接使用spring-boot-starter-data-redis的配置,redisson完全兼容spring-boot-starter-data-redis的配置,打开redisson-spring-boot-starter 的pom文件可以看到,他也是引入了spring-boot-starter-data-redis的依赖。

第二可以使用redisson自己的配置方式。

官网两种配置方式都有示例。

这里就直接使用spring-boot-starter-data-redis的配置,这种方式比较简单。

spring:application:name: demo # 应用名称#### Redisson配置,兼容spring-boot-starter-data-redis的配置redis:jedis:# 连接池配置,如果不配置就会使用默认值pool:#最大连接数max-active: 50#最大阻塞等待时间(负数表示没限制)max-wait: 20000#最大空闲连接max-idle: 10#最小空闲连接min-idle: 1database: 0host: 127.0.0.1port: 6379ssl: false#连接超时时间(毫秒)timeout: 3000
########### 集群模式
#    cluster:
#      nodes: 127.0.0.1:6379,127.0.0.2:6379,127.0.0.3:6379
########### 哨兵模式
#    sentinel:
#      master: mymaster # Sentinel中配置的主节点名称
#      nodes: 127.0.0.1:6379,127.0.0.2:6379,127.0.0.3:6379

如果要使用redisson自己的配置方式,参考官网即可,官网两种就有示例。

三、代码示例

    @AutowiredRedissonClient redissonClient; public void testLock() {//获取锁对象RLock lock = redissonClient.getLock("zhh-lock");//设置锁过期时间,防止死锁的产生boolean lockFlag = false;try {lockFlag = lock.tryLock(10, 10, TimeUnit.SECONDS);System.out.println("加锁状态:" + lockFlag);// 测试一下,添加一个键值对RBucket<String> bucket = redissonClient.getBucket("key1");bucket.set("value1");System.out.println(bucket.get());// 删除键值对bucket.delete();} catch (InterruptedException e) {System.out.println("加锁出现异常");e.printStackTrace();} finally {if (lockFlag) {lock.unlock();System.out.println("释放锁成功");}}}

http://www.lryc.cn/news/360585.html

相关文章:

  • 设计模式(十二)行为型模式---模板方法模式
  • 【气象常用】剖面图
  • LabVIEW高低温试验箱控制系统
  • Flutter 中的 SliverFillViewport 小部件:全面指南
  • 明日周刊-第12期
  • 算法之美阅读笔记
  • 新手学习STM32还是ESP32
  • 关于vlookup的第一个参数的个人理解
  • vector实现后半部分
  • Maven配置
  • python 第一天
  • Day03 左侧菜单数据绑定
  • JavaScript笔记三-JavaScript常用对象
  • 最新的CleanMyMac X4.15.4中文破解版新功能介绍及CleanMyMac 安装激活指南
  • 密文域可逆信息隐藏安全性研究-从图像到视频
  • 使用Python进行图像锐化的4个基础操作
  • 图解 Python 编程(9) | 模块和包
  • 德克萨斯大学奥斯汀分校自然语言处理硕士课程汉化版(第五周) - Transformer
  • 识别同一用户
  • Chrome DevTools攻略
  • 用Python获取Windows本机安装的所有应用程序的实现与分析
  • springboot基础及上传组件封装
  • WHAT - package.json 解释
  • Python知识点14---被规定的资源
  • 文献阅读:GCNG:用于从空间转录组数据推断基因相互作用的图卷积网络
  • Mybatis第一讲——你会Mybatis吗?
  • 【HarmonyOS】List组件多层对象嵌套ForEach渲染更新的处理
  • PostgreSQL基础(六):PostgreSQL基本操作(二)
  • 【前端部署——vercel】部署next.js使用了prisma的项目
  • Vue插槽与作用域插槽