分享免费的编程资源和教程

网站首页 > 技术教程 正文

Spring Boot 项目轻松集成 Redis

goqiw 2025-01-12 13:54:07 技术教程 2 ℃ 0 评论

大家好,我是沉默


Spring Data Redis 是一个用于在 Spring 应用程序中访问 Redis 的库,使得我们能够在 Spring Boot 项目中方便地实现 Redis 数据库的 CRUD(创建、读取、更新、删除)操作。以下是对Spring Data Redis 的详细介绍:


-01-

引入依赖

在 Spring Boot 项目中,首先需要引入 Spring Data Redis 相关的依赖。可以在项目的 pom.xml 文件中添加以下依赖:

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

同时,由于 Redis 连接池通常使用 Lettuce 或 Jedis,因此还需要引入相应的连接池依赖(如使用 Lettuce,则不需要额外引入,因为在新版本的 Spring Boot 中, spring-boot-starter-data-redis 已经包含默认的连接池实现)。如果需要显式引入,可以添加如下依赖(以 Lettuce 为例):

<dependency>
    <groupId>io.lettuce.core</groupId>
    <artifactId>lettuce-core</artifactId>
</dependency>


-02-

配置连接信息

在 application.properties 或 application.yaml 文件中,需要配置 Redis 的连接信息。例如:

spring.redis.host=localhost
spring.redis.port=6379
# 如果Redis设置了密码,则需要添加以下配置
# spring.redis.password=yourpassword
# 其他可选配置,如数据库索引、连接池参数等
spring.redis.database=0
spring.redis.lettuce.pool.max-active=8
spring.redis.lettuce.pool.max-idle=8
spring.redis.lettuce.pool.min-idle=2
spring.redis.lettuce.pool.max-wait=1ms
spring.redis.lettuce.shutdown-timeout=100ms


-03-

创建实体类

在使用 RedisRepository 之前,需要创建一个实体类来映射 Redis 中的数据。实体类需要使用 @RedisHash 注解来指定在 Redis 中存储的 Hash 的名称,并使用 @Id 注解来指定实体的唯一标识。例如:

import org.springframework.data.annotation.Id;
import org.springframework.data.redis.core.RedisHash;
@RedisHash("users")
public class User {
    @Id
    private String id;
    private String name;
    private int age;
    // 省略构造函数、getter和setter
}




-04-

创建 RedisRepository 接口

接下来,需要创建一个继承自CrudRepository(或PagingAndSortingRepository、Repository等)的接口,用于执行CRUD操作。在接口中,需要指定实体类和ID的类型作为泛型参数。例如:

import org.springframework.data.repository.CrudRepository;
public interface UserRepository extends CrudRepository<User, String> {
    // 可以根据需要添加自定义查询方法
}

由于CrudRepository已经提供了基本的CRUD方法(如save、delete、findById、findAll等),因此不需要在接口中显式实现这些方法。



-05

使用 RedisRepository

现在,可以在需要使用RedisRepository的地方注入UserRepository,并使用其提供的方法进行CRUD操作。例如,在一个Controller中:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/users")
public class UserController {
    @Autowired
    private UserRepository userRepository;
    @PostMapping
    public User createUser(@RequestBody User user) {
        return userRepository.save(user);
    }
    @GetMapping("/{id}")
    public User getUser(@PathVariable String id) {
        return userRepository.findById(id).orElse(null);
    }
    @PutMapping("/{id}")
    public User updateUser(@PathVariable String id, @RequestBody User user) {
        user.setId(id);
        return userRepository.save(user);
    }
    @DeleteMapping("/{id}")
    public void deleteUser(@PathVariable String id) {
        userRepository.deleteById(id);
    }
}

在这个例子中,UserController注入了UserRepository,并使用其提供的方法进行CRUD操作。通过RESTful风格的接口,轻松地实现对Redis数据库中User数据的增删改查。

关注公众号:架构师沉默,领取Spring Boot Vue 全栈开发实战,高薪工作不是梦

欢迎朋友圈各种姿势的分享

如需转载,请后台联系授权

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表