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

分布式锁redisson

1:pom.xml添加依赖

<dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId><version>3.21.1</version>
</dependency>

2-1:方法一:读取默认yml配置

# redis配置
spring:redis:database: 0host: 127.0.0.1password: 123456port: 6379

2-2:redisson.yml文件的方式

spring:redis:redisson:file: classpath:redisson.yml

2-3:redisson.yml

# 单节点配置
singleServerConfig:# 数据库编号database: 0# 节点地址address: redis://127.0.0.1:6379# 密码password: 123456
# 集群模式
clusterServersConfig:# 集群节点地址nodeAddresses:- "redis://127.0.0.1:16379"- "redis://127.0.0.1:26379"- "redis://127.0.0.1:36379"password: 123456
#Redis集群不支持多个数据库的概念,默认只有一个数据库,即db 0,所以这里是没有database这个参数的

3-1:方法二:自定义yml配置

spring:redis:# redisson配置redisson:# 如果该值为false,系统将不会创建RedissionClient的bean。enabled: true# mode的可用值为,single/cluster/sentinel/master-slavemode: single# single: 单机模式#   address: redis://localhost:6379# cluster: 集群模式#   每个节点逗号分隔,同时每个节点前必须以redis://开头。#   address: redis://localhost:6379,redis://localhost:6378,...# sentinel:#   每个节点逗号分隔,同时每个节点前必须以redis://开头。#   address: redis://localhost:6379,redis://localhost:6378,...# master-slave:#   每个节点逗号分隔,第一个为主节点,其余为从节点。同时每个节点前必须以redis://开头。#   address: redis://localhost:16379,redis://localhost:26379address: redis://127.0.0.1:6379# redis 密码,空可以不填。password: 123456database: 0

3-2:RedissonConfig自定义配置类

import org.apache.commons.lang3.StringUtils;
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*** Redisson配置类。*/
@Configuration
@ConditionalOnProperty(name = "spring.redis.redisson.enabled", havingValue = "true")
public class RedissonConfig {@Value("${spring.redis.redisson.mode}")private String mode;/*** 仅仅用于sentinel模式。*/@Value("${spring.redis.redisson.masterName:}")private String masterName;@Value("${spring.redis.redisson.address}")private String address;@Value("${spring.redis.redisson.password:}")private String password;/*** 数据库默认0*/@Value("${spring.redis.redisson.database:0}")private Integer database;@Beanpublic RedissonClient redissonClient() {if (StringUtils.isBlank(password)) {password = null;}Config config = new Config();if ("single".equals(mode)) {config.useSingleServer().setDatabase(database).setPassword(password).setAddress(address);} else if ("cluster".equals(mode)) {String[] clusterAddresses = address.split(",");config.useClusterServers()//集群模式不支持多个数据库概念,默认db 0.setPassword(password).addNodeAddress(clusterAddresses);} else if ("sentinel".equals(mode)) {String[] sentinelAddresses = address.split(&#

相关文章:

  • 插入排序—Java
  • Revit剪切无法保持图元连接
  • Mysql——索引
  • opencv进阶 ——(十一)基于RMBG实现生活照生成寸照
  • 【相关概念】经济金融中的Momentum
  • Base64前端图片乱码转换
  • Qt——升级系列(Level Two):Hello Qt 程序实现、项目文件解析、Qt 编程注意事项
  • 线性回归模型
  • docker 命令 ps,inspect,top,logs详解
  • Python 使用全局变量:深入探索与实战指南
  • Pycharm SSH远程连接时出现报错,测试 SFTP 连接,连接到 ‘connect.westb.seetacloud.com‘ 失败
  • React Router v5 和 v6 中,路由对象声明方式有什么区别?
  • 腾讯云centos上安装docker
  • 在LabVIEW项目管理中,如何确保团队之间的有效沟通和协作
  • 算法题day37日(补5.23日卡:贪心算法day4)
  • Electron入门介绍
  • gops —— Go 程序诊断分析工具
  • JavaScript设计模式系列一:工厂模式
  • Map集合、散列表、红黑树介绍
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • SpiderData 2019年2月25日 DApp数据排行榜
  • 从setTimeout-setInterval看JS线程
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 前端存储 - localStorage
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 用jquery写贪吃蛇
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 由插件封装引出的一丢丢思考
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • 阿里云ACE认证之理解CDN技术
  • 从如何停掉 Promise 链说起
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • #1014 : Trie树
  • #define
  • $refs 、$nextTic、动态组件、name的使用
  • (2)nginx 安装、启停
  • (2020)Java后端开发----(面试题和笔试题)
  • (C++20) consteval立即函数
  • (js)循环条件满足时终止循环
  • (Note)C++中的继承方式
  • (二)学习JVM —— 垃圾回收机制
  • (黑马C++)L06 重载与继承
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • (转)树状数组
  • .NET DataGridView数据绑定说明
  • .NET 使用 XPath 来读写 XML 文件
  • .NET 中 GetProcess 相关方法的性能
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .vue文件怎么使用_vue调试工具vue-devtools的安装
  • /usr/bin/perl:bad interpreter:No such file or directory 的解决办法
  • ??在JSP中,java和JavaScript如何交互?
  • @Bean有哪些属性