【浅学Redis】Spring Cache的基础使用

news2024/12/24 10:07:45

用SpringCache操作Redis缓存数据

  • 1. Spring Cache是什么
  • 2. Spring Cache 常用注释
  • 3. Spring Cache 的使用步骤
  • 4. 使用Spring Cache操作Redis

1. Spring Cache是什么

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

Spring Cache 提供了一层抽象,底层可以切换为不同cache来实现。实际就是通过CacheManager接口来统一不同缓存技术。

针对不同的缓存技术需要实现不同的CacheManager:
在这里插入图片描述

2. Spring Cache 常用注释

在这里插入图片描述
在SpringBoot中,加上上面的注解,就可以实现缓存,具体的实现见下面

使用实例:

@CachePut(value = "userCache",key = "#user.id")//user:获取方法的参数
@CacheEvict(value = "userCache",key = "#id")
@Cacheable(value = "userCache",key="#id",condition = "#result != null")
@CacheEvict(value = "setmealCache",allEntries = true)//allEntries 表示清除setmealCache分类下面的所有缓存数据

注释中参数的含义:

  1. value:缓存的名称,每个名称下面有多个key
  2. key:缓存的内容,通常需要动态的生成,即利用 ‘#’ 来实现
  3. condition:缓存条件,满足条件时才会进行缓存
  4. allEntries:表示清除setmealCache分类下面的所有缓存数据

3. Spring Cache 的使用步骤

1.引入相关的依赖(引入starter-web即可将缓存存储在内存中)

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-web</artifactId>
     <scope>compile</scope>
 </dependency>

2.在项目启动类上加上@EnableCaching注释

在这里插入图片描述
3.注入CacheManager

在这里插入图片描述
4. 给需要缓存的方法加上注释
在这里插入图片描述

注意:如果方法的返回值为一个List,那么对应的类要实现序列化接口
在这里插入图片描述
在这里插入图片描述

通过以上的操作,可以使缓存暂时存在内存中,当项目关闭时,缓存就会删除。这是不可取的,所以需要将缓存存在redis中来克服这个问题,如下:

4. 使用Spring Cache操作Redis

处理完成上面的步骤,还得进行如下3个操作:

1.引入reids和cache的依赖

 <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-cache</artifactId>
 </dependency>

 <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-data-redis</artifactId>
 </dependency>

2.配置好redis

在这里插入图片描述

3.配置好cache

在这里插入图片描述

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

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

相关文章

计算机视觉框架OpenMMLab开源学习(六):语义分割基础

✨写在前面&#xff1a;强烈推荐给大家一个优秀的人工智能学习网站&#xff0c;内容包括人工智能基础、机器学习、深度学习神经网络等&#xff0c;详细介绍各部分概念及实战教程&#xff0c;通俗易懂&#xff0c;非常适合人工智能领域初学者及研究者学习。➡️点击跳转到网站。…

工地安全帽智能识别系统 YOLOv5

工地安全帽智能识别系统通过opencv深度学习技术&#xff0c;实现对现场人员的安全帽反光衣穿戴进行自动实时识别和检测。我们选择当下YOLO最新的卷积神经网络YOLOv5来进行识别检测。6月9日&#xff0c;Ultralytics公司开源了YOLOv5&#xff0c;离上一次YOLOv4发布不到50天。而且…

Allegro172版本线到铜皮不按照设定值避让的原因和解决办法

Allegro172版本线到铜皮不按照设定值避让的原因和解决办法 用Allegro做PCB设计的时候,有时会单独给某块铜皮附上线到铜皮额外再增加一个数值,如下图 在规则的基础上,额外再避让10mil 规则避让line到铜皮10.02mil 额外设置多避让10mil,避让的结果却是30.02mil,正确的是20.…

2023金三银四季跳槽季,啃完这软件测试面试题,跳槽不就稳稳的了

前言 2023年也到来了&#xff0c;接近我们所说的“金三银四”也正在执行了&#xff0c;时间晃眼就过去了&#xff0c;有的人为了2023跳槽早早做足了准备&#xff0c;有的人在临阵磨刀&#xff0c;想必屏幕前的你也想在2023年涨薪吧&#xff0c;那么问题来了&#xff0c;怎么才…

day4——与数组有关的练习

今天是学习java的第四天&#xff0c;主要内容有 给循环起一个标签数组的定义以及数组的初始化 给循环起一个标签 给循环起一个标签&#xff0c;简单的说就是给循环起一个名字&#xff0c;内部的循环可以控制外部的循环&#xff0c;外部的循环可以控制内部的循环&#xff0c;…

第四章:搭建Windows server AD域和树域

由于Windows简单一点&#xff0c;我就先搞Windows了。AD域&#xff1a;视频教程&#xff1a;https://www.bilibili.com/video/BV1f84y1G72x/在创建AD域时要把网卡配置好这是打开网卡界面的命令DNS要改成自己的&#xff0c;因为在创建域的同时也会自动创建DNS打开服务器管理器&a…

LANP架构搭建

安装Apache解压apache安装包&#xff08;httpd-2.4.17.tar.gz&#xff09;到 /usr/src/目录下面tar -zxvf /root/httpd-2.4.17.tar.gz -C /usr/src/安装httpd所需要的依赖包yum -y install zlib* openssl* apr* pcre-devel openssl*进入httpd目录&#xff0c;安装httpd所需要的…

个人ChatGPT账号注册

作者&#xff1a;Bruce.Dgithub&#xff1a;https://github.com/doukoi-BDB文章底部有【技术社群&福利】&#xff0c;不定更新活动、源码&#xff0c;欢迎来撩~~~今日主题&#xff1a;1、ChatGPT 账号注册2、预计阅读 6 分钟&#xff0c;正文2000字。最近啊 一款类似人工智…

服务降级和熔断机制

&#x1f3c6;今日学习目标&#xff1a; &#x1f340;服务降级和熔断机制 ✅创作者&#xff1a;林在闪闪发光 ⏰预计时间&#xff1a;30分钟 &#x1f389;个人主页&#xff1a;林在闪闪发光的个人主页 &#x1f341;林在闪闪发光的个人社区&#xff0c;欢迎你的加入: 林在闪闪…

状态机设计中的关键技术

⭐本专栏针对FPGA进行入门学习&#xff0c;从数电中常见的逻辑代数讲起&#xff0c;结合Verilog HDL语言学习与仿真&#xff0c;主要对组合逻辑电路与时序逻辑电路进行分析与设计&#xff0c;对状态机FSM进行剖析与建模。 &#x1f525;文章和代码已归档至【Github仓库&#xf…

IT行业寒冬,干测试从月薪18k降到了15k,“我”的路在何方

今天已经是2.10了&#xff0c;马上就是金3银4了&#xff0c;2023年才开始&#xff0c;是的&#xff0c;正值春天&#xff0c;想到了一首诗词自古逢秋悲寂寥&#xff0c;我言秋日胜春朝。晴空一鹤排云上&#xff0c;便引诗情到碧霄。秋天&#xff0c;意味着收获&#xff0c;也意…

【C语言】“指针类型”与“野指针”

文章目录一、指针是什么❔二、指针和指针类型1.指针-整数2.指针解引用三.野指针1.引起野指针的原因2.如果避免野指针完结一、指针是什么❔ 指针也就是 内存地址 &#xff0c;在计算机上我们访问数据需要通过内存地址来访问&#xff0c;在C语言中&#xff0c;指针变量是用来存放…

如何编写Python程序调用ChatGPT,只需3步

如何编写Python程序调用ChatGPT&#xff0c;只需3步 在ChatGPT官网进行注册&#xff0c;注册成功后就可以对ChatGPT进行提问&#xff0c;ChatGPT的注册流程参考这篇文章——手把手教你注册ChatGPT&#xff0c;亲测可用。 来看看ChatGPT&#xff0c;如何回答”ChatGPT是什么“…

Deepwalk深度游走算法

主要思想 Deepwalk是一种将随机游走和word2vec两种算法相结合的图结构数据的挖掘算法。该算法可以学习网络的隐藏信息&#xff0c;能够将图中的节点表示为一个包含潜在信息的向量&#xff0c; Deepwalk算法 该算法主要分为随机游走和生成表示向量两个部分&#xff0c;首先…

c++11 标准模板(STL)(std::multimap)(三)

定义于头文件 <map> template< class Key, class T, class Compare std::less<Key>, class Allocator std::allocator<std::pair<const Key, T> > > class multimap;(1)namespace pmr { template <class Key, class T…

SCI论文阅读-使用基于图像的机器学习模型对FTIR光谱进行功能组识别

期刊&#xff1a; Analytical Chemistry中科院最新分区&#xff08;2022年12月最新版&#xff09;&#xff1a;1区(TOP)影响因子&#xff08;2021-2022&#xff09;&#xff1a;8.008第一作者&#xff1a;Abigail A. Enders通讯作者&#xff1a;Heather C. Allen 原文链接&…

自己家用的电脑可以架设游戏吗

自己家用的电脑可以架设游戏吗家用电脑怎么用来做服务器呢&#xff1f;我是艾西&#xff0c;今天我跟大家详细的说家用电脑可以当服务器使用吗&#xff1f;咱们先把家用电脑不足的点列出来就清楚了一、外网端口映射以前的宽带大多数是adsl拨号&#xff0c;再搭配一个TP路由器&a…

SQL语句训练

好文推荐&#xff1a; 21个MySQL表设计的经验准则 后端程序员必备&#xff1a;书写高质量SQL的30条建议 我们为什么要分库分表&#xff1f; 从0.742秒到0.006秒&#xff0c;MySQL百万数据深分页优化实战 2020年MySQL数据库50面试题目含答案 MyBatis 表连接查询写法|三种对…

深度学习实战(11):使用多层感知器分类器对手写数字进行分类

使用多层感知器分类器对手写数字进行分类 1.简介 1.1 什么是多层感知器&#xff08;MLP&#xff09;&#xff1f; MLP 是一种监督机器学习 (ML) 算法&#xff0c;属于前馈人工神经网络 [1] 类。该算法本质上是在数据上进行训练以学习函数。给定一组特征和一个目标变量&#x…

2021年新公开工业控制系统严重漏洞汇总

声明 本文是学习ITOT一体化工业信息安全态势报告&#xff08;2019&#xff09;. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 工业互联网安全威胁 2021年新公开工业控制系统严重漏洞 缓冲区溢出漏洞 缓冲区溢出&#xff08;buffer overflow&…