网站首页 > 技术教程 正文
大家好,我是沉默
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 全栈开发实战,高薪工作不是梦
欢迎朋友圈各种姿势的分享
如需转载,请后台联系授权
猜你喜欢
- 2025-01-12 Spring Boot RESTful API设计:最佳实践指南
- 2025-01-12 由 Mybatis 源码畅谈软件设计(二):MappedStatement 和 SqlSource
- 2025-01-12 详细介绍一下Spring Boot中如何使用Hive?
- 2025-01-12 OGG同步到Kafka
- 2025-01-12 由 Mybatis 源码畅谈软件设计(五):ResultMap 的循环引用
- 2025-01-12 【从零开始】5. 向量数据库选型与搭建
- 2025-01-12 How China's Drone Manufacturers Leapfrog From Latecomers to Global Leaders
- 2025-01-12 Spring Boot与MyBatis:简化数据库操作
- 2025-01-12 SpringBoot整合ElasticSearch实现数据存储?
- 2025-01-12 28个SpringBoot项目中常用注解,日常开发、求职面试不再懵圈
你 发表评论:
欢迎- 01-12Spring Boot RESTful API设计:最佳实践指南
- 01-12由 Mybatis 源码畅谈软件设计(二):MappedStatement 和 SqlSource
- 01-12详细介绍一下Spring Boot中如何使用Hive?
- 01-12OGG同步到Kafka
- 01-12由 Mybatis 源码畅谈软件设计(五):ResultMap 的循环引用
- 01-12【从零开始】5. 向量数据库选型与搭建
- 01-12Spring Boot 项目轻松集成 Redis
- 01-12How China's Drone Manufacturers Leapfrog From Latecomers to Global Leaders
- 最近发表
-
- Spring Boot RESTful API设计:最佳实践指南
- 由 Mybatis 源码畅谈软件设计(二):MappedStatement 和 SqlSource
- 详细介绍一下Spring Boot中如何使用Hive?
- OGG同步到Kafka
- 由 Mybatis 源码畅谈软件设计(五):ResultMap 的循环引用
- 【从零开始】5. 向量数据库选型与搭建
- Spring Boot 项目轻松集成 Redis
- How China's Drone Manufacturers Leapfrog From Latecomers to Global Leaders
- Spring Boot与MyBatis:简化数据库操作
- SpringBoot整合ElasticSearch实现数据存储?
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)