Spring Boot项目集成Redisson 原始依赖与 Spring Boot Starter 的流程

Redisson 是一个高性能的 Java Redis 客户端,提供了丰富的分布式工具集,如分布式锁、Map、Queue 等,帮助开发者简化 Redis 的操作。在集成 Redisson 到项目时,开发者通常有两种选择:

  1. 使用 Redisson 原始依赖。
  2. 使用 Redisson Spring Boot Starter。

这篇文章将详细介绍这两种集成方式的配置、使用场景以及它们的差异,帮助你更好地理解并选择合适的方案。

1. 使用 Redisson 原始依赖

Redisson 原始依赖的方式指的是直接使用 redisson 库,并自行配置 RedissonClient 来与 Redis 进行交互。这种方法适用于任何 Java 项目,包括 Spring、非 Spring 项目。

使用步骤
1.1 引入依赖

在 pom.xml 中添加 Redisson 依赖:

复制代码
<dependency>
    <groupId>org.redisson</groupId>
    <artifactId>redisson</artifactId>
    <version>3.16.5</version> <!-- 版本号可根据需求调整 -->
</dependency>
1.2 创建配置类并初始化 RedissonClient

手动定义 Config 对象,并创建 RedissonClient 实例:

复制代码
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;

public class RedisConfig {

    public RedissonClient createRedissonClient() {
        // 创建 Redisson 配置对象
        Config config = new Config();
        // 设置为单节点配置
        config.useSingleServer()
              .setAddress("redis://127.0.0.1:6379")
              .setPassword("yourPassword");

        // 创建 RedissonClient 实例
        return Redisson.create(config);
    }
}
1.3 使用 RedissonClient

在业务代码中使用 RedissonClient:

复制代码
public class RedissonExample {
    public static void main(String[] args) {
        RedisConfig redisConfig = new RedisConfig();
        RedissonClient redissonClient = redisConfig.createRedissonClient();

        // 使用 Redisson 获取分布式锁
        var lock = redissonClient.getLock("testLock");
        lock.lock();
        try {
            // 模拟业务逻辑
            System.out.println("Lock acquired and executing critical section.");
        } finally {
            lock.unlock();
        }
    }
}
特点
  • 手动配置 :手动定义 Config 对象并配置 RedissonClient,可以完全控制连接参数、池大小、超时等。
  • 适用于非 Spring 环境:这种方式并不依赖 Spring,可以应用于任何 Java 项目。
  • 灵活性强:可以根据具体需求实现自定义逻辑和配置。
使用场景
  • 项目对 Spring 依赖不多,或完全不使用 Spring。
  • 需要对 RedissonClient 的每个细节进行精细控制。

2. 使用 Redisson Spring Boot Starter

redisson-spring-boot-starter 是 Redisson 提供的用于与 Spring Boot 更好集成的模块,它提供了自动化的配置功能,使得 RedissonClient 的配置过程更加简洁。

使用步骤
2.1 引入依赖

在 pom.xml 中添加 redisson-spring-boot-starter 依赖:

复制代码
<dependency>
    <groupId>org.redisson</groupId>
    <artifactId>redisson-spring-boot-starter</artifactId>
    <version>3.16.5</version> <!-- 版本号可以根据需求调整 -->
</dependency>
2.2 在 application.yml 或 application.properties 中配置 Redis 信息

在 application.yml 中配置 Redis:

复制代码
redisson:
  singleServerConfig:
    address: "redis://127.0.0.1:6379"
    password: "yourPassword"
    connectionPoolSize: 10
    connectionMinimumIdleSize: 2
2.3 使用 RedissonClient 自动注入

Spring Boot 会自动配置 RedissonClient,因此你可以直接注入并使用它:

复制代码
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class RedissonController {

    @Autowired
    private RedissonClient redissonClient;

    @GetMapping("/lock")
    public String acquireLock() {
        var lock = redissonClient.getLock("testLock");
        lock.lock();
        try {
            // 模拟业务逻辑
            return "Lock acquired and critical section executed.";
        } finally {
            lock.unlock();
        }
    }
}
特点
  • 自动化配置 :redisson-spring-boot-starter 能从 Spring Boot 配置文件中读取参数并自动创建 RedissonClient。
  • 与 Spring Boot 紧密集成 :无需手动管理 RedissonClient,更加符合 Spring Boot 的自动化特性。
  • 方便注入 :可以通过 @Autowired 轻松地注入 RedissonClient,非常符合 Spring 的开发风格。
使用场景
  • 使用 Spring Boot 项目,并且希望最大化利用 Spring Boot 的自动配置特性。
  • 希望简化代码、减少配置工作量。

两种方式的对比

特性

原始 Redisson 依赖

Redisson Spring Boot Starter

配置方式

手动创建 Config 和 RedissonClient

使用 application.yml 自动配置

适用项目类型

任何 Java 项目,包括非 Spring 项目

适用于 Spring Boot 项目

灵活性

配置灵活,细节控制全面

依赖自动配置,灵活性稍低

代码复杂度

需要手动编写配置类

自动配置,代码量少,集成简单

与 Spring 的集成

需手动管理,适用于传统 Java 项目

Spring Boot 会自动管理 RedissonClient

典型场景

对 Spring 依赖不多,或者需要特殊配置场景

使用 Spring Boot,追求快速开发和简洁配置

如何选择?

  • 如果你的项目是传统 Java 项目,或者使用了 Spring Framework 而不是 Spring Boot,并且你希望对 Redis 的配置有更多细节掌控,那么可以选择 原始 Redisson 依赖 的方式。它可以让你根据需求实现自定义的配置和连接管理。
  • 如果你的项目是 Spring Boot 项目,并且你希望充分利用 Spring Boot 的自动配置特性来减少配置代码,可以选择 Redisson Spring Boot Starter。这种方式集成简单,代码更加简洁,可以大大提高开发效率。

总结

Redisson 提供了两种集成 Redis 的方式:原始依赖和 Spring Boot Starter。原始依赖适用于需要完全自定义配置的场景,而 Spring Boot Starter 使得集成过程变得更加简单,特别适合 Spring Boot 项目。根据具体项目的需求和开发环境选择合适的方式,能够更好地帮助你完成项目的 Redis 集成,实现更强大的分布式能力。

相关推荐
user_admin_god18 分钟前
第 10 篇:拼上下文与生成——预算、边界与防幻觉
java·人工智能·spring boot·语言模型
zed_2319 分钟前
省钱之道:token 成本日志 + FAQ 缓存
后端
用户31268748772019 分钟前
GC 算法与垃圾收集器演进:从 Serial 到 ZGC
java
量化分析码农20 分钟前
【Python量化因子实战 #07】因子加权怎么选?等权 / IC 加权 / 最大化 IR 三种策略 PK
后端
天天被压力1 小时前
【别再到处找免费股票数据API了:官方204个接口,32篇一次讲透 #02】涨停跌停与特色股池:5类股池接口一次拉全
java·人工智能·python
Wx-bishekaifayuan1 小时前
springboot甘肃特产服务平台50301-计算机课程设计、毕业设计
spring boot·后端·python·django·课程设计·express·旅游
Thneonl1 小时前
服务不通先别抓包:DNS 解析器的坑比内核网络栈多
后端·程序员
Thneonl1 小时前
一启动就 Exited(137):内存限制背后藏了四个参数
后端·架构
斯维赤1 小时前
从 @Tool 到 Agent 流水线:LangChain4j 进阶教学,一个库打全套
java·后端
对象存储与RustFS1 小时前
RustFS 生产部署实战:Docker / 二进制 / K8s Operator 三条路径怎么选
后端