Springboot配置多个redis连接

在这里插入图片描述

1. 添加Redis依赖

	首先,打开您的Spring Boot 项目的 pom.xml 文件并添加以下 Redis 相关依赖:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>                        
</dependency>

2. 配置多个 Redis 连接

接下来在 application.properties 文件中添加 Redis 连接的配置。
假设我们要添加两个 Redis 连接:分别为 Redis1 和 Redis2 添加了配置。
# Redis1 Configuration
spring.redis1.host=localhost
spring.redis1.port=6379                          
spring.redis1.password=                          
spring.redis1.pool.max-active=8                      
spring.redis1.pool.max-wait=-1                    
spring.redis1.pool.max-idle=8                   
spring.redis1.pool.min-idle=0
# Redis2 Configuration
spring.redis2.host=localhost
spring.redis2.port=6380                         
spring.redis2.password=                          
spring.redis2.pool.max-active=8                  
spring.redis2.pool.max-wait=-1                  
spring.redis2.pool.max-idle=8                    
spring.redis2.pool.min-idle=0

3. 在代码中使用多个 Redis 连接

为了在代码中使用多个 Redis 连接,我们首先需要创建一个配置类 RedisConfiguration
在该类中进行多个 Redis 连接的配置。
注意,这里的 @Primary 注解用于指定默认的 Redis 连接。
@Configuration
public class RedisConfiguration {

    @Bean(name = "redis1Template")
    @Primary
    public RedisTemplate<String, String> redis1Template() {
        RedisTemplate<String, String> template = new RedisTemplate<>();
        template.setConnectionFactory(redis1ConnectionFactory());
        return template;
    }

    @Bean(name = "redis2Template")
    public RedisTemplate<String, String> redis2Template() {
        RedisTemplate<String, String> template = new RedisTemplate<>();
        template.setConnectionFactory(redis2ConnectionFactory());
        return template;
    }

    @Bean
    @Primary
    public RedisConnectionFactory redis1ConnectionFactory() {
        return new JedisConnectionFactory(new RedisStandaloneConfiguration("localhost", 6379));
    }

    @Bean
    public RedisConnectionFactory redis2ConnectionFactory() {
        return new JedisConnectionFactory(new RedisStandaloneConfiguration("localhost", 6380));
    }
}
在上述代码中,我们为每个 Redis 连接定义了一个 Redistemplate 
并创建了两个 RedisConnectionFactory 类。
接下来,在我们的代码中我们可以使用这些对象来访问不同的 Redis 实例。示例如下:
@Autowired
@Qualifier("redis1Template")
RedisTemplate<String, String> redis1Template;

@Autowired
@Qualifier("redis2Template")
RedisTemplate<String, String> redis2Template;

// 访问redis1
redis1Template.opsForValue().set("key1", "value1");
String value1 = redis1Template.opsForValue().get("key1");

// 访问redis2
redis2Template.opsForValue().set("key2", "value2");
String value2 = redis2Template.opsForValue().get("key2");
上述代码在注入时指定了不同的 Qualifier,以便区分两个不同的 Redis 实例。​

在这里插入图片描述

更多学习资讯,学习源码,请在公众号耶宇星球领取
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Spring Boot可以通过配置多个Redis连接池来实现集成多个Redis。具体步骤如下: 1. 在`application.properties`文件中添加多个Redis连接配置,如下所示: ``` # Redis1 spring.redis.host=127.0.0.1 spring.redis.port=6379 spring.redis.password= # Redis2 spring.redis2.host=127.0.0.1 spring.redis2.port=6380 spring.redis2.password= ``` 2. 在`@Configuration`类中创建多个`RedisConnectionFactory`对象,如下所示: ``` @Configuration public class RedisConfig { @Autowired private Environment environment; @Bean(name = "redis1ConnectionFactory") public RedisConnectionFactory redis1ConnectionFactory() { JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory(); jedisConnectionFactory.setHostName(environment.getProperty("spring.redis.host")); jedisConnectionFactory.setPort(Integer.parseInt(environment.getProperty("spring.redis.port"))); jedisConnectionFactory.setPassword(environment.getProperty("spring.redis.password")); return jedisConnectionFactory; } @Bean(name = "redis2ConnectionFactory") public RedisConnectionFactory redis2ConnectionFactory() { JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory(); jedisConnectionFactory.setHostName(environment.getProperty("spring.redis2.host")); jedisConnectionFactory.setPort(Integer.parseInt(environment.getProperty("spring.redis2.port"))); jedisConnectionFactory.setPassword(environment.getProperty("spring.redis2.password")); return jedisConnectionFactory; } } ``` 3. 在需要使用Redis的地方使用`@Qualifier`注解指定使用哪个`RedisConnectionFactory`,如下所示: ``` @Autowired @Qualifier("redis1ConnectionFactory") private RedisConnectionFactory redis1ConnectionFactory; @Autowired @Qualifier("redis2ConnectionFactory") private RedisConnectionFactory redis2ConnectionFactory; ``` 4. 使用`redis1ConnectionFactory`和`redis2ConnectionFactory`创建`RedisTemplate`对象,并使用`@Qualifier`注解指定使用哪个`RedisConnectionFactory`,如下所示: ``` @Bean(name = "redis1Template") public RedisTemplate redis1Template() { RedisTemplate redisTemplate = new RedisTemplate(); redisTemplate.setConnectionFactory(redis1ConnectionFactory); return redisTemplate; } @Bean(name = "redis2Template") public RedisTemplate redis2Template() { RedisTemplate redisTemplate = new RedisTemplate(); redisTemplate.setConnectionFactory(redis2ConnectionFactory); return redisTemplate; } ``` 5. 在需要使用Redis的地方使用`@Qualifier`注解指定使用哪个`RedisTemplate`,如下所示: ``` @Autowired @Qualifier("redis1Template") private RedisTemplate redis1Template; @Autowired @Qualifier("redis2Template") private RedisTemplate redis2Template; ``` 至此,Spring Boot项目就成功集成了多个Redis。在使用时,只需要使用对应的`RedisTemplate`即可。例如,使用`redis1Template`操作Redis1,使用`redis2Template`操作Redis2。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北顾丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值