原创:快速上手Spring Boot整合Redis, crud 操作redis
本文写作背景: jwt操作,要把生成token存入redis.因redis数据大都存在内存中。加之redis数据是可以设置缓存,即添加每条数据可以设置有效时间。一旦过了有效时间,网页请求到服务器。携带token发现redis中,没有携带的数据。这样就会服务器端代码,可以返回跳转到登陆页面。当然,因读取写入的速度是非常快的, 所以经常被用来做数据, 页面等的缓存。
1:安装数据库
2:启动数据库
3:spring boot 中配置
4:案例代码书写
1:安装数据库
下载地址:https://github.com/tporadowski/redis/releases
a)下载安装包
b)配置环境变量
安装目录结构:
2:启动数据库
redis数据启动=服务端启动+客户端启动
1)服务启端启动命令
cmd-->输入命名:redis-server
2)客户端连接数据成功,添加数据,查询数据
客户端连接新建窗口时,不要要关闭服务器连接窗口
使用如下命令确保安装成功,并添加数据
3:spring boot 中配置
a)pom.xml 添加依赖
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis --> <!-- data-redis 依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <version>2.3.2.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-pool2 --> <!-- apache下可以建立公共资源池,即对象池,把对象缓存下次直接取之用多,提高效率 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> </dependency>
b)配置appilcation.yml
#设置redis数据库连接信息
redis:
database: 0 #redis数据库在内存中,用0即可
host: localhost
port: 6379
4:案例代码书写
a)实体类一定要添加序列化
package com.ibaiqi.gov.springbootshiro.entity; import java.io.Serializable; import java.util.Date; /** * 为学习redis 而创建实体类, 一定要实现接口持久化接口 */ public class Student implements Serializable { private Integer id; private String username; private Integer score; private Date birthday; public Student() { } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public Integer getScore() { return score; } public void setScore(Integer score) { this.score = score; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } @Override public String toString() { return "Student{" + "id=" + id + ", username='" + username + '\'' + ", score=" + score + ", birthday=" + birthday + '}'; } }
b)控制器书写
package com.ibaiqi.gov.springbootshiro.controller; import com.ibaiqi.gov.springbootshiro.entity.Student; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.web.bind.annotation.*; /** * student控制器,为学习redis准备 */ @RestController public class StudentController { @Autowired RedisTemplate redisTemplate; /** * 1:添加或修改 redis * 把学生对象存到redis里.重新添加会修改原来数据,所以可理解添加和修改是同一个方法 */ @PostMapping("/student") public void set(@RequestBody Student student){ System.out.println("准备向redis数据库存储信息"); //可以在此处打断点,看前端传递过来的值. redisTemplate.opsForValue().set("student",student); } /** * 2:查询 redis中数据 如:http://localhost:8083/student/student * 因原来存储为student,所以路径上值加上 student/student * @param key * @return */ @GetMapping("/student/{key}") public Student get(@PathVariable("key") String key){ Student student = (Student) redisTemplate.opsForValue().get(key); return student; } @DeleteMapping("/student/{key}") public boolean del(@PathVariable("key") String key){ redisTemplate.delete(key); return redisTemplate.hasKey(key); //判断是否有key,返回boolean 类型。删除成功返回false } }
3)通过 post选择不同请求方式,确保成功
再次感谢:本文参者楠哥B站视频 : https://www.bilibili.com/video/BV18E411e7WJ?p=1
做产品的程序,才是好的程序员!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!