jeecg配置多redis数据源

本文记录了在JeecgBoot项目中实现多Redis数据源的配置过程,由于官方仅支持微服务下的Redis集群,作者通过自行修改SpringBoot配置,成功实现了多数据源的连接。主要步骤包括在`application-dev.yml`中添加新的Redis源,在`RedisConfig.java`中创建新的`redisTemplate2`,并修改`RedisUtil.java`以使用新配置的`redisTemplate2`。
摘要由CSDN通过智能技术生成

JeecgBoot 是一款基于代码生成器的低代码平台!我在一个项目中用JeecgBoot 3.0时,有一个需求是需要用到多reids数据源,JeecgBoot官方只有使用微服务时才能用Redis集群搭建,所以百度了一下,并没有相应的文章。由于JeecgBoot是基于SpringBoot开发的,就百度了SpringBoot 的redis多数据源,但是,一直没有一个合适的!那就自己动手改了代码,经过了多次测试,终于可以使用了,特此记录一下!

首先在配置文件里application-dev.yml,的#redis 配置 下面,添加新的redis源,例如:

redis2:
    database: 0
    host: 127.0.0.1
    lettuce:
      pool:
        max-active: 8   #最大连接数据库连接数,设 -1 为没有限制
        max-idle: 8     #最大等待连接中的数量,设 0 为没有限制
        max-wait: -1  #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。
        min-idle: 0     #最小等待连接中的数量,设 0 为没有限制
      shutdown-timeout: 100
    password: ''
    port: 6370

然后在 jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeect/common/modules/redis/config中修改RedisConfig.java

package org.jeecg.common.modules.redis.config;

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;

import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
import org.jeecg.common.constant.CacheConstant;
import org.jeecg.common.constant.GlobalConstants;

import org.jeecg.common.modules.redis.receiver.RedisReceiver;
import org.jeecg.common.modules.redis.writer.JeecgRedisCacheWriter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.cache.RedisCacheWriter;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.RedisPassword;
import org.springframework.data.redis.connection.RedisStand
Java中,配置多个Redis数据源通常是为了分布式系统的设计,每个数据源可以连接到不同的Redis实例,以实现读写分离、高可用等需求。Spring Boot提供了一个方便的方式来管理这样的场景,你可以使用`@ConfigurationProperties`和`@Bean`注解来创建多个RedisTemplate实例。 首先,你需要添加Spring Data Redis依赖,并创建一个配置类: ```java import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; @Configuration public class RedisConfig { @Bean public JedisConnectionFactory primaryDataSource() { // 配置数据源Redis连接信息,比如localhost:6379 return new JedisConnectionFactory(); } @Bean public JedisConnectionFactory secondaryDataSource() { // 配置备选数据源Redis连接信息,如localhost:6380 return new JedisConnectionFactory(); } @Bean public RedisTemplate<String, String> primaryRedisTemplate(JedisConnectionFactory factory) { RedisTemplate<String, String> template = new RedisTemplate<>(); template.setConnectionFactory(factory); return template; } @Bean public RedisTemplate<String, String> secondaryRedisTemplate(JedisConnectionFactory factory) { RedisTemplate<String, String> template = new RedisTemplate<>(); template.setConnectionFactory(factory); return template; } } ``` 然后,在需要使用数据源的地方,你可以通过`@Qualifier`来指定特定的数据源: ```java @Autowired @Qualifier("primaryRedisTemplate") private RedisTemplate<String, String> primaryTemplate; @Autowired @Qualifier("secondaryRedisTemplate") private RedisTemplate<String, String> secondaryTemplate; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值