这篇文章主要讲解了Springboot如何以Repository方式整合redis,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
创新互联凭借在网站建设、网站推广领域领先的技术能力和多年的行业经验,为客户提供超值的营销型网站建设服务,我们始终认为:好的营销型网站就是好的业务员。我们已成功为企业单位、个人等客户提供了成都网站建设、网站建设服务,以良好的商业信誉,完善的服务及深厚的技术力量处于同行领先地位。
1 简介
Redis是高性能的NOSQL数据库,经常作为缓存流行于各大互联网架构中。本文将介绍如何在Springboot中整合Spring Data Redis,使用Repository的方式操作。
代码结构如下:

2 整合过程
2.1 安装Redis数据库
为了节省时间,就直接通过Docker来安装了,可以参考文章:Docker安装Redis并介绍漂亮的可视化客户端进行操作,可以快速安装并使用客户端进行查看和操作。
2.2 引入相关依赖
我们引入Springboot Web的依赖,以启动REST服务。还需要引入Spring Data Redis相关的依赖。最后,还需要commons-pool2,不然会因为缺少类而无法启动。
org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-data-redis org.apache.commons commons-pool2
2.3 配置连接信息
配置Redis的连接信息,这个信息跟你安装时的配置有关,同时配置了连接池,各项的配置及相关解释如下:
# Redis数据库索引,默认为0 spring.redis.database=0 # Redis端口 spring.redis.port=6379 # Redis服务器主机 spring.redis.host=localhost # 连接池最大连接数 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
2.4 创建实体类
存入Redis中的数据类型,可以是自定义的一个类,注意需要加上注解@RedisHash和@Id。存入Redis的数据为Set类型。
具体代码如下:
package com.pkslow.redis.model;
import org.springframework.data.annotation.Id;
import org.springframework.data.redis.core.RedisHash;
import java.util.Date;
@RedisHash("User")
public class User {
@Id
private String userId;
private String name;
private Integer age;
private Date createTime = new Date();
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
}2.5 数据库访问层UserRepository接口
直接继承CrudRepository接口就行了,不用自己来实现,需要注意CrudRepository的泛型类型:
package com.pkslow.redis.dal; import com.pkslow.redis.model.User; import org.springframework.data.repository.CrudRepository; public interface UserRepository extends CrudRepository{ }
2.6 实现Controller
Controller实现了RESTful风格的增删改查功能,只要把UserRepository注入便可以使用它来操作:
package com.pkslow.redis.controller;
import com.pkslow.redis.dal.UserRepository;
import com.pkslow.redis.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private final UserRepository userRepository;
public UserController(UserRepository userRepository) {
this.userRepository = userRepository;
}
@GetMapping("")
public Iterable getAllUsers() {
return userRepository.findAll();
}
@GetMapping("/{userId}")
public User getByUserId(@PathVariable String userId) {
return userRepository.findById(userId).orElse(new User());
}
@PostMapping("")
public User addNewUser(@RequestBody User user) {
return userRepository.save(user);
}
@DeleteMapping("/{userId}")
public String delete(@PathVariable String userId) {
User user = new User();
user.setUserId(userId);
userRepository.deleteById(userId);
return "deleted: " + userId;
}
@PutMapping("")
public User update(@RequestBody User user) {
return userRepository.save(user);
}
} 3 Postman接口测试
本文使用Postman进行测试,结果显示的时间为GMT时间,每个功能测试如下:
(1)新增User

(2)根据UserId查询特定User

(3)修改User

(4)删除一个User

(5)查询所有User

在Redis中的数据如下所示:

看完上述内容,是不是对Springboot如何以Repository方式整合Redis有进一步的了解,如果还想学习更多内容,欢迎关注创新互联行业资讯频道。
网站题目:Springboot如何以Repository方式整合Redis
新闻来源:http://www.jxjierui.cn/article/jedcij.html


咨询
建站咨询
