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

springboot 集成 redis luttuce redisson ,单机 集群模式(根据不同环境读取不同环境的配置)

luttuce 和redisson配置过程中实际上是独立的,他们两个可以同时集成,但是没有直接相关关系,配置相对独立。
所以分为Lettuce 和 Redisson 两套配置
父pom

            <!-- Spring Data Redis --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><version>2.3.11.RELEASE</version></dependency><!--连接池 不集成redisTempate配置工厂类会报错--><dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId><version>2.4.2</version></dependency><!-- Redisson --><dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-data-22</artifactId><version>3.23.3</version></dependency>

子pom

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-data-22</artifactId></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId></dependency>

lettuce
单机模式
在这里插入图片描述

cluster集群模式
lettuce yaml配置
在这里插入图片描述
配置文件

@Configuration
public class RedisConfig {@BeanRedisTemplate redisTemplate(LettuceConnectionFactory lettuceConnectionFactory){RedisTemplate redisTemplate = new RedisTemplate<>();redisTemplate.setConnectionFactory(lettuceConnectionFactory);// 使用Jackson2JsonRedisSerializer 替换默认的JDKSerializationRedisSerializer 来序列化和反序列化redis 的value值Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);// hash的value序列化方式采用jacksonredisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);redisTemplate.setKeySerializer(new StringRedisSerializer());redisTemplate.setHashKeySerializer(new StringRedisSerializer());redisTemplate.afterPropertiesSet();return redisTemplate;}
}

Redisson
单机模式
新建yaml文件:

singleServerConfig:# 连接空闲超时,单位:毫秒idleConnectionTimeout: 10000# 连接超时,单位:毫秒connectTimeout: 10000# 命令等待超时,单位:毫秒 默认3000timeout: 3000# 命令失败重试次数retryAttempts: 3# 命令重试发送时间间隔,单位:毫秒retryInterval: 1500# 无密码则设置 nullpassword: 123456# 单个连接最大订阅数量subscriptionsPerConnection: 5# 客户端名称clientName: null# redis 节点地址address: "redis://127.0.0.1:6379"# 从节点发布和订阅连接的最小空闲连接数subscriptionConnectionMinimumIdleSize: 1# 发布和订阅连接池大小subscriptionConnectionPoolSize: 50# 发布和订阅连接的最小空闲连接数connectionMinimumIdleSize: 32# 发布和订阅连接池大小connectionPoolSize: 64# 数据库编号database: 10# DNS监测时间间隔,单位:毫秒  在启用该功能以后,Redisson将会监测DNS的变化情况dnsMonitoringInterval: 5000
threads: 0
nettyThreads: 0
codec: !<org.redisson.codec.JsonJacksonCodec> {}
transportMode: "NIO"

集群模式
新建yaml文件:

clusterServersConfig:idleConnectionTimeout: 10000connectTimeout: 10000timeout: 3000retryAttempts: 3retryInterval: 1500password: xxxxsubscriptionsPerConnection: 5clientName: nullloadBalancer: !<org.redisson.connection.balancer.RoundRobinLoadBalancer> {}slaveSubscriptionConnectionMinimumIdleSize: 1slaveSubscriptionConnectionPoolSize: 50slaveConnectionMinimumIdleSize: 32slaveConnectionPoolSize: 64masterConnectionMinimumIdleSize: 32masterConnectionPoolSize: 64readMode: "SLAVE"nodeAddresses:- "redis://xxx:6379"- "redis://xxx:6379"- "redis://xxx:6379"- "redis://xxx:6379"- "redis://xxx:6379"- "redis://xxx:6379"- "redis://xxx:6379"- "redis://xxx:6379"- "redis://xxx:6379"- "redis://xxx:6379"- "redis://xxx:6379"- "redis://xxx:6379"scanInterval: 1000
threads: 0
nettyThreads: 0
codec: !<org.redisson.codec.JsonJacksonCodec> {}
"transportMode":"NIO"

redisson配置文件

@Configuration
public class RedissonConfig {@Value("${spring.profiles.active}")private String active;@Bean(destroyMethod="shutdown")public RedissonClient redissonClient() throws IOException {// 开发环境-单机模式if ("dev".equals(active)){Config config = Config.fromYAML(RedissonConfig.class.getClassLoader().getResource("redisson-single-dev.yaml"));return Redisson.create(config);}// 测试环境-测试cluster集群模式if ("test".equals(active)){Config config = Config.fromYAML(RedissonConfig.class.getClassLoader().getResource("redisson-cluster-test.yaml"));return Redisson.create(config);}// 开发环境-正式cluster集群模式if ("online".equals(active)){Config config = Config.fromYAML(RedissonConfig.class.getClassLoader().getResource("redisson-cluster-online.yaml"));return Redisson.create(config);}return null;}
}
http://www.lryc.cn/news/260802.html

相关文章:

  • PPT插件-好用的插件-PPT 素材该怎么积累-大珩助手
  • qt 正则表达式简单介绍
  • Redis设计与实现之跳跃表
  • [每周一更]-(第27期):HTTP压测工具之wrk
  • 【FunASR】Paraformer语音识别-中文-通用-16k-离线-large-onnx
  • C语言中的柔性数组
  • ca-certificates.crt解析加载到nssdb中
  • 聊聊Java中的常用类String
  • R语言piecewiseSEM结构方程模型在生态环境领域实践技术
  • IDEA设置查看JDK源码
  • SSM—Mybatis
  • MYSQL在不删除数据的情况下,重置主键自增id
  • SpringMVC-servlet交互
  • DICOM 文件中,VR,VL,SQ,图像二进制的几个注意点
  • git 的使用
  • 详解—【C++】lambda表达式
  • Qt Desktop Widgets 控件绘图原理逐步分析拆解
  • 什么是rocketmq❓
  • 【网络安全】HTTP Slowloris攻击原理解析
  • 从最近爆火的ChatGPT,我看到了电商的下一个形态
  • 云原生向量计算引擎 PieCloudVector:为大模型提供独特记忆
  • 大创项目推荐 深度学习 opencv python 实现中国交通标志识别
  • 深度学习实战67-基于Stable-diffusion的图像生成应用模型的搭建,在Kaggle平台的搭建部署,解决本地没有算力资源问题
  • 云原生之深入解析Kubernetes本地持久化存储方案OpenEBS LocalPV的最佳实践
  • 设计模式-策略(Strategy)模式
  • Star 4.1k!Gitee GVP开源项目!新一代桌面应用开发框架 ElectronEgg!
  • node.js学习(简单聊天室)
  • cfa一级考生复习经验分享系列(四)
  • PPT插件-好用的插件-放映笔、绘图板-大珩助手
  • 弧形导轨的安装注意事项