跳至主要內容

1.5 Spring Boot集成Redis


Spring Boot 集成 Redis 主要通过使用 Spring Data Redis 模块来实现,它提供了对 Redis 的抽象化支持,使得操作 Redis 变得简单而直观。下面将逐步介绍如何在 Spring Boot 应用中集成 Redis。

步骤 1: 添加依赖

首先,你需要在你的项目中添加 Spring Boot 的 Redis Starter。如果你使用 Maven 作为构建工具,可以在 pom.xml 中添加以下依赖:

<dependencies>
    <!-- Spring Boot Redis Starter -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    <!-- Redis客户端驱动,这里使用 Lettuce,Spring Boot 2.0 之后的默认实现 -->
    <dependency>
        <groupId>io.lettuce.core</groupId>
        <artifactId>lettuce-core</artifactId>
    </dependency>
</dependencies>

步骤 2: 配置 Redis

接下来,你需要配置 Redis 的连接。在 src/main/resources/application.propertiesapplication.yml 文件中添加 Redis 服务器的配置。例如:

# application.properties
spring.redis.host=localhost
spring.redis.port=6379
# 如果设置了密码
# spring.redis.password=yourpassword

或者使用 YAML 格式:

# application.yml
spring:
  redis:
    host: localhost
    port: 6379
    # password: yourpassword

步骤 3: 使用 Redis

在 Spring Boot 应用中使用 Redis 一般涉及到操作 RedisTemplate 或 StringRedisTemplate。你可以通过注入这些 Bean 来进行 Redis 操作。

创建一个简单的服务来演示如何使用 RedisTemplate:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;

@Service
public class RedisService {

    private final RedisTemplate<String, Object> redisTemplate;

    @Autowired
    public RedisService(RedisTemplate<String, Object> redisTemplate) {
        this.redisTemplate = redisTemplate;
    }

    public void setValue(String key, String value) {
        redisTemplate.opsForValue().set(key, value);
    }

    public String getValue(String key) {
        return (String) redisTemplate.opsForValue().get(key);
    }
}

步骤 4: 运行示例

现在,你可以创建一个 REST 控制器或任何其他组件来调用这些服务方法,并验证是否能够正确操作 Redis。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class RedisController {

    private final RedisService redisService;

    @Autowired
    public RedisController(RedisService redisService) {
        this.redisService = redisService;
    }

    @GetMapping("/set/{key}/{value}")
    public String setValue(@PathVariable String key, @PathVariable String value) {
        redisService.setValue(key, value);
        return "Value set";
    }

    @GetMapping("/get/{key}")
    public String getValue(@PathVariable String key) {
        return redisService.getValue(key);
    }
}

测试

启动你的 Spring Boot 应用,并尝试访问 REST API 来验证 Redis 是否工作正常,比如使用浏览器或 Postman 访问 /set/mykey/myvalue/get/mykey

这个基本示例展示了如何在 Spring Boot 中集成 Redis,进行简单的写入和读取操作。根据具体需求,Spring Data Redis 还支持更复杂的数据结构和高级功能,如发布/订阅、事务等。

上次编辑于: