Spring Boot Redisson Sentinel 配置指南

一、整体流程

在使用 Spring Boot 和 Redisson Sentinel 的过程中,整体流程如下所示:

flowchart TD
    A[准备工作] --> B[导入依赖]
    B --> C[配置 Redis Sentinel]
    C --> D[创建 Redisson 配置类]
    D --> E[注入并使用 Redisson]

二、步骤详细说明

下面我们将一步步详细介绍每个步骤,并附上需要的代码。

1. 准备工作

确保已安装 JDK 和 Maven,并创建一个新的 Spring Boot 项目。

2. 导入依赖

在你的 pom.xml 中添加以下依赖:

<dependency>
    <groupId>org.redisson</groupId>
    <artifactId>redisson-spring-boot-starter</artifactId>
    <version>3.18.1</version> <!-- 请检查最新版本 -->
</dependency>

注释:上述依赖是 Redisson 的 Spring Boot 起始器,它提供了 Redisson 的基本配置与使用支持。

3. 配置 Redis Sentinel

application.yml 中,添加 Redis Sentinel 的基本配置:

spring:
  redis:
    sentinel:
      master: mymaster
      nodes:
        - 127.0.0.1:26379
        - 127.0.0.1:26380

注释:这里定义了主节点的名称 mymaster 和哨兵节点的地址。

4. 创建 Redisson 配置类

接下来,我们需要创建一个配置类来初始化 Redisson 客户端。创建一个名为 RedissonConfig.java 的配置类:

import org.redisson.Config;
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class RedissonConfig {

    @Bean
    public RedissonClient redisson() {
        Config config = new Config();
        // 配置哨兵模式
        config.useSentinelServers()
              .setMasterName("mymaster")
              .addSentinelAddress("redis://127.0.0.1:26379", "redis://127.0.0.1:26380");

        return Redisson.create(config);
    }
}

注释:在这个配置类中,我们创建了一个名为 redisson() 的 Bean,配置了 Redisson 的哨兵模式并返回一个 RedissonClient 实例。

5. 注入并使用 Redisson

在需要使用 Redisson 的地方进行注入,例如在服务类中:

import org.redisson.api.RBucket;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class MyService {

    @Autowired
    private RedissonClient redissonClient;

    public void setValue(String key, String value) {
        RBucket<String> bucket = redissonClient.getBucket(key);
        bucket.set(value); // 将值设置到 Redis
    }

    public String getValue(String key) {
        RBucket<String> bucket = redissonClient.getBucket(key);
        return bucket.get(); // 从 Redis 获取值
    }
}

注释:在服务类中,我们先注入了 RedissonClient,然后定义了两个方法 setValuegetValue,用来在 Redis 中设置和获取值。

三、类图

我们可以用类图来展示这个配置的结构:

classDiagram
    class MyService {
        +void setValue(String key, String value)
        +String getValue(String key)
    }
    class RedissonConfig {
        +RedissonClient redisson()
    }
    MyService --> RedissonClient : uses
    RedissonConfig --> RedissonClient : creates

四、结尾

在本篇文章中,我们学习了如何在 Spring Boot 项目中配置 Redisson Sentinel。这包括了依赖的导入、Redis Sentinel 的配置、Redisson 客户端的创建以及如何在服务中使用它。通过这个简单的配置,你可以充分利用 Redis 的高可用性和强大的功能。

希望这篇文章能帮助到你!如果有任何问题,随时可以问。