实现"springboot 一个服务下2个redis"教程

1. 整体流程

首先我们需要明确整个实现过程的步骤:

erDiagram
    用户 -- 服务: 一个服务
    服务 -- Redis1: Redis1
    服务 -- Redis2: Redis2

步骤如下:

步骤 操作
1 添加 spring-boot-starter-data-redis 依赖
2 配置第一个 Redis
3 配置第二个 Redis
4 注入两个 RedisTemplate 实例

2. 操作步骤

步骤1:添加 spring-boot-starter-data-redis 依赖

在 pom.xml 文件中添加以下依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

步骤2:配置第一个 Redis

在 application.properties 或 application.yml 中配置第一个 Redis:

spring.redis1.host=127.0.0.1
spring.redis1.port=6379
spring.redis1.password=
spring.redis1.database=0

步骤3:配置第二个 Redis

在 application.properties 或 application.yml 中配置第二个 Redis:

spring.redis2.host=127.0.0.1
spring.redis2.port=6380
spring.redis2.password=
spring.redis2.database=0

步骤4:注入两个 RedisTemplate 实例

在代码中注入两个 RedisTemplate 实例,分别对应第一个和第二个 Redis:

import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;

@Configuration
public class RedisConfig {

    @Bean
    @Qualifier("redis1")
    public RedisTemplate<String, Object> redisTemplate1(RedisConnectionFactory factory) {
        RedisTemplate<String, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(factory);
        template.setKeySerializer(new StringRedisSerializer());
        template.setValueSerializer(new StringRedisSerializer());
        return template;
    }

    @Bean
    @Qualifier("redis2")
    public RedisTemplate<String, Object> redisTemplate2(RedisConnectionFactory factory) {
        RedisTemplate<String, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(factory);
        template.setKeySerializer(new StringRedisSerializer());
        template.setValueSerializer(new StringRedisSerializer());
        return template;
    }
}

通过以上步骤,你就成功实现了在一个 Spring Boot 服务下使用两个 Redis 的目标。

希望这篇文章对你有所帮助!如果有任何问题,欢迎随时向我提问。祝你学习进步!