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相关推荐

  1. redis序列化_实例讲解Springboot以Template方式整合Redis及序列化问题

    1 简介 之前讲过如何通过Docker安装Redis,也讲了Springboot以Repository方式整合Redis,建议阅读后再看本文效果更佳: (1) Docker安装Redis并介绍漂亮的可 ...

  2. core 实例化接口_实例讲解Springboot整合MongoDB进行CRUD操作的两种方式

    1 简介 Springboot是最简单的使用Spring的方式,而MongoDB是最流行的NoSQL数据库.两者在分布式.微服务架构中使用率极高,本文将用实例介绍如何在Springboot中整合Mon ...

  3. mysql springboot 缓存_Spring Boot 整合 Redis 实现缓存操作

    摘要: 原创出处 www.bysocket.com 「泥瓦匠BYSocket 」欢迎转载,保留摘要,谢谢! 『 产品没有价值,开发团队再优秀也无济于事 – <启示录> 』 本文提纲 一.缓 ...

  4. [资源分享] 【Springboot】实例讲解Springboot整合OpenTracing分布式链路追踪系统(Jaeger和Zipkin)

    1 分布式追踪系统 随着大量公司把单体应用重构为微服务,对于运维人员的责任就更加重大了.架构更复杂.应用更多,要从中快速诊断出问题.找到性能瓶颈,并不是一件容易的事.因此,也随着诞生了一系列面向Dev ...

  5. springboot获取sessionid_Spring Boot 整合Redis, 用起来真简单!

    点击上方"Java技术前线",选择"置顶或者星标" 与你一起成长- 作者:java_老男孩  https://blog.51cto.com/14230003/2 ...

  6. 【Redis】分布式限流与Redis实现限流的四种方式(Redis专栏启动)

  7. Redis最详细讲解

    Redis最详细讲解 原文地址 本文脑图 redis基本数据结构 本文脑图 前言 Redis核心对象 String类型 int SDS SDS与c语言字符串对比 String类型应用 Hash类型 字 ...

  8. Springboot整合redis(lettuce)

    springboot 整合redis(lettuce) 首先确保电脑上装了redis.最好能用redisDesktop查看一下数据情况 redis是一款非常流行的Nosql数据库.redis的功能非常 ...

  9. 超完整!Springboot整合redis集群(Sentine),spring boot自动配置集成redis集群(Sentine)

    1.添加maven依赖 注意maven版本依赖,版本要相互匹配,如不知道如何查看相对应的版本时,可进入博主主页查看博主上一篇博文. <parent><groupId>org.s ...

最新文章

  1. 配置 php-fpm 监听的socket
  2. SimpleDateFormat的线程安全问题
  3. 每日一皮:如何用一句话让领导和同事都尴尬至极?
  4. C# 非模式窗体show()和模式窗体showdialog()的区别
  5. wordpress 介绍
  6. 007--C++动态内存(数组)
  7. Android学习资源网站
  8. 数据结构(四)之单链表查找中间结点
  9. 日志查看技巧_10种Git技巧,让你省时省力又省心!
  10. IIS的Windows集成身份验证总结
  11. android访问静态内部类,Java 内部类详解
  12. 自带python库的环境软件_pyenv虚拟环境管理python多版本和软件库
  13. 给CentOS 6.7 配置IP地址
  14. LuoguP3045牛券Cow Coupons
  15. 这才叫会PS,普通照片分分钟P成好莱坞海报!
  16. 大数据治理——《华为数据之道》
  17. 印度软件业为什么?把脉中国软件企业
  18. 力扣 704.二分查找
  19. Kafka 2.8.0 学习
  20. linux下搜狗拼音隐藏悬浮状态栏

热门文章

  1. java的异常机制面试题(转)
  2. TP3.2.3 页面跳转后 Cookie 失效 —— 参考解决方案
  3. 如何解决The underlying provider failed on Open问题
  4. (DNS被劫持所导致的)QQ音乐与视频网页打开很慢的解决方法
  5. xmanager 开启X11转发失败问题解决
  6. Swagger2异常:Illegal DefaultValue null for parameter type integer java
  7. 如何在使用babel和webpack时生成源图?
  8. 在数据框中采样随机行
  9. 无法将stdClass类型的对象用作数组?
  10. bcrypt如何内置盐?