继承redis spring_实例讲解Springboot以Repository方式整合Redis
1 简介
Redis是高性能的NoSQL数据库,经常作为缓存流行于各大互联网架构中。本文将介绍如何在Springboot中整合Spring Data Redis,使用Repository的方式操作。
代码结构如下:
code
2 整合过程
2.1 安装Redis数据库
为了节省时间,就直接通过Docker来安装了,可以参考文章:Docker安装Redis并介绍漂亮的可视化客户端进行操作[1],可以快速安装并使用客户端进行查看和操作。
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数据库索引,默认为0spring.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
Create User
(2)根据UserId查询特定User
Query User
(3)修改User
Update User
(4)删除一个User
Delete User
(5)查询所有User
Query All Users
在Redis中的数据如下所示:
Result
4 总结
本文通过实例讲解了如何整合Springboot和Redis,使用的是Repository的方式。
继承redis spring_实例讲解Springboot以Repository方式整合Redis相关推荐
- redis序列化_实例讲解Springboot以Template方式整合Redis及序列化问题
1 简介 之前讲过如何通过Docker安装Redis,也讲了Springboot以Repository方式整合Redis,建议阅读后再看本文效果更佳: (1) Docker安装Redis并介绍漂亮的可 ...
- core 实例化接口_实例讲解Springboot整合MongoDB进行CRUD操作的两种方式
1 简介 Springboot是最简单的使用Spring的方式,而MongoDB是最流行的NoSQL数据库.两者在分布式.微服务架构中使用率极高,本文将用实例介绍如何在Springboot中整合Mon ...
- mysql springboot 缓存_Spring Boot 整合 Redis 实现缓存操作
摘要: 原创出处 www.bysocket.com 「泥瓦匠BYSocket 」欢迎转载,保留摘要,谢谢! 『 产品没有价值,开发团队再优秀也无济于事 – <启示录> 』 本文提纲 一.缓 ...
- [资源分享] 【Springboot】实例讲解Springboot整合OpenTracing分布式链路追踪系统(Jaeger和Zipkin)
1 分布式追踪系统 随着大量公司把单体应用重构为微服务,对于运维人员的责任就更加重大了.架构更复杂.应用更多,要从中快速诊断出问题.找到性能瓶颈,并不是一件容易的事.因此,也随着诞生了一系列面向Dev ...
- springboot获取sessionid_Spring Boot 整合Redis, 用起来真简单!
点击上方"Java技术前线",选择"置顶或者星标" 与你一起成长- 作者:java_老男孩 https://blog.51cto.com/14230003/2 ...
- 【Redis】分布式限流与Redis实现限流的四种方式(Redis专栏启动)
- Redis最详细讲解
Redis最详细讲解 原文地址 本文脑图 redis基本数据结构 本文脑图 前言 Redis核心对象 String类型 int SDS SDS与c语言字符串对比 String类型应用 Hash类型 字 ...
- Springboot整合redis(lettuce)
springboot 整合redis(lettuce) 首先确保电脑上装了redis.最好能用redisDesktop查看一下数据情况 redis是一款非常流行的Nosql数据库.redis的功能非常 ...
- 超完整!Springboot整合redis集群(Sentine),spring boot自动配置集成redis集群(Sentine)
1.添加maven依赖 注意maven版本依赖,版本要相互匹配,如不知道如何查看相对应的版本时,可进入博主主页查看博主上一篇博文. <parent><groupId>org.s ...
最新文章
- 配置 php-fpm 监听的socket
- SimpleDateFormat的线程安全问题
- 每日一皮:如何用一句话让领导和同事都尴尬至极?
- C# 非模式窗体show()和模式窗体showdialog()的区别
- wordpress 介绍
- 007--C++动态内存(数组)
- Android学习资源网站
- 数据结构(四)之单链表查找中间结点
- 日志查看技巧_10种Git技巧,让你省时省力又省心!
- IIS的Windows集成身份验证总结
- android访问静态内部类,Java 内部类详解
- 自带python库的环境软件_pyenv虚拟环境管理python多版本和软件库
- 给CentOS 6.7 配置IP地址
- LuoguP3045牛券Cow Coupons
- 这才叫会PS,普通照片分分钟P成好莱坞海报!
- 大数据治理——《华为数据之道》
- 印度软件业为什么?把脉中国软件企业
- 力扣 704.二分查找
- Kafka 2.8.0 学习
- linux下搜狗拼音隐藏悬浮状态栏
热门文章
- java的异常机制面试题(转)
- TP3.2.3 页面跳转后 Cookie 失效 —— 参考解决方案
- 如何解决The underlying provider failed on Open问题
- (DNS被劫持所导致的)QQ音乐与视频网页打开很慢的解决方法
- xmanager 开启X11转发失败问题解决
- Swagger2异常:Illegal DefaultValue null for parameter type integer java
- 如何在使用babel和webpack时生成源图?
- 在数据框中采样随机行
- 无法将stdClass类型的对象用作数组?
- bcrypt如何内置盐?