使用SpringCache实现Redis缓存

目录

一 什么是Spring Cache

二 Spring Cache 各注解作用

        ①EnableCaching

        ②Cacheable

        ③CachePut

        ④CacheEvict

三实现步骤

①导入spring cache依赖和Redis依赖

②配置Redis连接信息

③在启动类上加上开启spring cache的注解 

④ 在对应的方法上加上需要的注解


一 什么是Spring Cache

        spring cache是一个框架,实现了基于注解的缓存功能,只需要简单的加一个注解,就能实现缓存功能。

        而且spring cache提供了多种缓存的实现,例如:

        ①EHCahe

        ②Caffeine

        ③Redis

        想用那种缓存只需要导入对应的jar包即可。

        本次我们使用Redis缓存作为用例。

二 Spring Cache 各注解作用

        ①EnableCaching

                开启缓存注解功能 , 通常加在启动类上。

        ②Cacheable

在执行方法前先查询缓存中是否有数据,如果有数据,则直接返回缓存数据;如果没有数据,则调用方法并将方法返回值放到缓存中。

        ③CachePut

将方法返回值放到缓存中

        ④CacheEvict

将一条或者多条数据从缓存中删除

三实现步骤

①导入spring cache依赖和Redis依赖

<!--        spring cache缓存--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId></dependency>
<!--        使用redis缓存--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>

②配置Redis连接信息

 这是在yml文件中配置的

③在启动类上加上开启spring cache的注解 

@SpringBootApplication
@MapperScan("com.fs.mapper")
@Slf4j
@EnableCaching  //开启springCache缓存
public class user_managementApplication {public static void main(String[] args) {SpringApplication.run(user_managementApplication.class , args);log.info("server is start...");}
}

④ 在对应的方法上加上需要的注解

        例如:我在下面这个新增用户的方法上,需要把返回的用户存入缓存中去

    @PutMapping("/add")@CachePut(cacheNames = "userCache" , key = "#user.uid")  //比如uid为3 ,那么得到存入redis的可以为:“userCache::3”public Result addUser(@RequestBody User user){log.info("进入新增用户:{}",user);userService.addUser(user) ;return Result.success() ;}

这里需要注意一点,因为我这个方法并没有返回用户对象,返回的是一个Result , 所以存储的也只是一个Result。

另外,这个uid是主键回显的,因为我这里插入使用的mp自带的,所以mp会自己帮我把id回显,我只需要从user中获取就行了,如果你是用mybatis自己写的sql语句,那么你需要自己设置主键回显,可以在mapper接口层使用如下注解:

    @Options(useGeneratedKeys = true , keyProperty = "id") //把主键id映射到“id”返回@Update("update tb_user set is_can_login=0 where  uid=#{uid}")void updateStatueByUid(Integer uid);

最后我们可以看见数据成功缓存到了redis,并且key也是我们设置好的。

其他还有很多注解,这里就不一一做示范了,根据自己的需要使用不同注解即可。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/858351.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

green bamboo snake

green bamboo snake 【竹叶青蛇】 为什么写这个呢&#xff0c;因为回县城听说邻居有人被蛇咬伤&#xff0c;虽然不足以危及生命&#xff0c;严重的送去市里了。 1&#xff09;这种经常都是一动不动&#xff0c;会躲在草地、菜地的菜叶里面、果树上、有时候会到民房大厅休息&a…

Qt——系统

目录 概述 事件 鼠标事件 进入、离开事件 按下事件 释放事件 双击事件 移动事件 滚轮事件 按键事件 单个按键 组合按键 定时器 QTimerEvent QTimer 窗口事件 文件 输入输出设备 文件读写类 文件和目录信息类 多线程 常用API 线程安全 互斥锁 条件变量…

光纤传感器十大品牌

十大光纤传感器品牌-光纤光栅传感器厂家哪家好-Maigoo品牌榜

【chatgpt】train_split_test的random_state

在使用train_test_split函数划分数据集时&#xff0c;random_state参数用于控制随机数生成器的种子&#xff0c;以确保划分结果的可重复性。这样&#xff0c;无论你运行多少次代码&#xff0c;只要使用相同的random_state值&#xff0c;得到的训练集和测试集划分就会是一样的。…

导入别人的net文件报红问题sdk

1. 使用cmd命令 dotnet --info 查看自己使用的SDK版本 2.直接找到项目中的 global.json 文件&#xff0c;右键打开&#xff0c;直接修改版本为本机的SDK版本&#xff0c;就可以用了

使用Flink CDC实时监控MySQL数据库变更

在现代数据架构中&#xff0c;实时数据处理变得越来越重要。Flink CDC&#xff08;Change Data Capture&#xff09;是一种强大的工具&#xff0c;可以帮助我们实时捕获数据库的变更&#xff0c;并进行处理。本文将介绍如何使用Flink CDC从MySQL数据库中读取变更数据&#xff0…

端到端自动驾驶的基础概念

欢迎大家关注我的B站&#xff1a; 偷吃薯片的Zheng同学的个人空间-偷吃薯片的Zheng同学个人主页-哔哩哔哩视频 (bilibili.com) 目录 1.端到端自动驾驶的定义 1.1特斯拉FSD 1.2端到端架构演进 1.3大模型 1.4世界模型 1.5纯视觉传感器 2.落地的挑战 1.端到端自动驾驶的定…

MySQL----利用Mycat配置读写分离

首先确保主从复制是正常的&#xff0c;具体步骤在MySQL----配置主从复制。MySQL----配置主从复制 环境 master(CtenOS7)&#xff1a;192.168.200.131 ----ifconfig查看->ens33->inetslave(win10)&#xff1a;192.168.207.52 ----ipconfig查看->无线局域网适配器 WLA…

whiteboard - 笔记

1 drawio draw.io GitHub - jgraph/drawio: draw.io is a JavaScript, client-side editor for general diagramming. 2 demo 可以将XML数据保存到服务器上的data目录。需要在服务器端创建一个接收和处理POST请求的脚本,该脚本将接收到的SVG数据保存到指定的文件中。下面是…

libssh-cve_2018_10933-vulfocus

1.原理 ibssh是一个用于访问SSH服务的C语言开发包&#xff0c;它能够执行远程命令、文件传输&#xff0c;同时为远程的程序提供安全的传输通道。server-side state machine是其中的一个服务器端状态机。 在libssh的服务器端状态机中发现了一个逻辑漏洞。攻击者可以MSG_USERA…

基于CDMA的多用户水下无线光通信(3)——解相关多用户检测

继续上一篇博文&#xff0c;本文将介绍基于解相关的多用户检测算法。解相关检测器的优点是因不需要估计各个用户的接收信号幅值而具有抗远近效应的能力。常规的解相关检测器有运算量大和实时性差的缺点&#xff0c;本文针对异步CDMA的MAI主要来自干扰用户的相邻三个比特周期的特…

【c2】编译预处理,gdb,makefile,文件,多线程,动静态库

文章目录 1.编译预处理&#xff1a;C源程序 - 编译预处理【#开头指令和特殊符号进行处理&#xff0c;删除程序中注释和多余空白行】- 编译2.gdb调试&#xff1a;多进/线程中无法用3.makefile文件&#xff1a;make是一个解释makefile中指令的命令工具4.文件&#xff1a;fprint/f…

Git分支的状态存储——stash命令的详细用法

文章目录 6.6 Git的分支状态存储6.6.1 git stash命令6.6.2 Git存储的基本使用6.6.3 Git存储的其他用法6.6.4 Git存储与暂存区6.6.5 Git存储的原理 6.6 Git的分支状态存储 有时&#xff0c;当我们在项目的一部分上已经工作一段时间后&#xff0c;所有东西都进入了混乱的状态&am…

AG32 MCU是否支持DFU下载实现USB升级

1、AG32 MCU是否支持DFU下载实现USB升级呢&#xff1f; 先说答案是NO. STM32 可以通过内置DFU实现USB升级&#xff0c;AG32 MCU目前不支持。但用户可以自己写一个DFU&#xff0c; 作为二次boot. 2、AG32 MCU可支持的下载方式有哪些呢&#xff1f; 我们AG32裸机下载只支持uart和…

四川汇聚荣科技有限公司怎么样?

在探讨一家科技公司的综合实力时&#xff0c;我们往往从多个维度进行考量&#xff0c;包括但不限于公司的发展历程、产品与服务的质量、市场表现、技术创新能力以及企业文化。四川汇聚荣科技有限公司作为一家位于中国西部的科技企业&#xff0c;其表现和影响力自然也受到业界和…

测试服务器端口是否打开,服务器端口开放异常的解决方法

在进行服务器端口开放性的测试时&#xff0c;我们通常使用网络工具来验证目标端口是否响应特定的协议请求。常用的工具包括Telnet、Nmap、nc&#xff08;netcat&#xff09;等。这些工具可以通过发送TCP或UDP数据包到指定的IP地址和端口&#xff0c;然后分析返回的数据包&#…

【FreeRTOS】任务管理与调度

文章目录 调度&#xff1a;总结 调度&#xff1a; 相同优先级的任务轮流运行最高优先级的任务先运行 可以得出结论如下&#xff1a; a 高优先级的任务在运行&#xff0c;未执行完&#xff0c;更低优先级的任务无法运行b 一旦高优先级任务就绪&#xff0c;它会马上运行&#xf…

Postman Postman接口测试工具使用简介

Postman这个接口测试工具的使用做个简单的介绍&#xff0c;仅供参考。 插件安装 1&#xff09;下载并安装chrome浏览器 2&#xff09;如下 软件使用说明

从零入手人工智能(5)—— 决策树

1.前言 在上一篇文章《从零入手人工智能&#xff08;4&#xff09;—— 逻辑回归》中讲述了逻辑回归这个分类算法&#xff0c;今天我们的主角是决策树。决策树和逻辑回归这两种算法都属于分类算法&#xff0c;以下是决策树和逻辑回归的相同点&#xff1a; 分类任务&#xff1…

椭圆的矩阵表示法

椭圆的矩阵表示法 flyfish 1. 标准几何表示法 标准几何表示法是通过椭圆的几何定义来表示的&#xff1a; x 2 a 2 y 2 b 2 1 \frac{x^2}{a^2} \frac{y^2}{b^2} 1 a2x2​b2y2​1其中&#xff0c; a a a 是椭圆的长半轴长度&#xff0c; b b b 是椭圆的短半轴长度。 2.…