当前位置: 首页 > news >正文

【技术栈】Spring Cache 简化 Redis 缓存使用

SueWakeup

                                                       个人主页:SueWakeup

                                                      系列专栏:学习技术栈

                                                      个性签名:保留赤子之心也许是种幸运吧

本文封面由 凯楠📸 友情提供

目录

 本栏传送门

1. Spring Cache 介绍

2. Spring Cache 常用注解

注:手机端浏览本文章可能会出现 “目录”无法有效展示的情况,请谅解,点击侧栏目录进行跳转 


 本栏传送门

1.【技术栈】Redis 的理解与数据存储格式

2.【技术栈】Redis 中的事务及持久化方式

3.【技术栈】Redis 删除策略

4.【技术栈】Redis 企业级解决方案

5.【数据结构】布隆过滤器

6.【开发】SpringBoot 整合 Redis

7.【技术栈】Spring Cache 简化 Redis 缓存使用


1. Spring Cache 介绍

Spring Cache 是一个框架,实现类基于注解的缓存功能,提供一层抽象,底层可以切换不同的 cache 实现。具体是通过 CacheManager 接口来统一不同的缓存技术。

CacheManager 缓存管理器是 Spring 提供的各种缓存技术抽象接口

针对不同的缓存技术需要实现不同的 CacheManager:

CacheManager描述
EhCacheManager使用 EhCache 作为缓存技术(Spring Cache 框架操作的默认缓存)
GuavaCacheManager使用 Google 的 GuavaCache 作为缓存技术
RedisCacheManager使用 Redis 作为缓存技术

2. Spring Cache 常用注解

注解说明
@EnableCaching开启缓存注解功能
@Cacheable在方法执行前 Spring 先查看缓存中是否有数据,如果有数据,则直接返回缓存数据;若没有数据,调用方法并将方法返回值放到缓存中
@CachePut将方法的返回值放到缓存中
@CacheEvict将一条或多条数据从缓存中删除

 使用步骤:

1. 引入缓存启动器:spring-boot-starter-cache,spring-boot-starter-data-redis

2. @EnableCaching:在启动类上,开启基于注解的缓存

3. @Cacheable:标在方法上,返回的结果会进行缓存

        属性:value / cacheNames 缓存的名字

                key:作为缓存中的 Key 值,可自己使用 SpEL 表达式指定(不指定就是参数值),缓存结果是方法返回值

名字描述示例
methodName当前被调用的方法名#root.methodName
targetClass当前被调用的目标对象#root.target
targetClass当前被调用的目标对象类#root.targetClass
args当前被调用的方法的参数列表#root.args [0]
caches

当前方法调用使用的缓存列表

(如@Cacheable(value ={"cache1","cache2"})),则有两个cache

#root.cache [0].name

argumentname

方法参数的名字.可以直接 #参数名,也可以使用 #p0 或 # a0 的形式,0 代表参数的索引 #iban、#a0、#p0
result方法执行后的返回值(仅当方法执行之后的判断有效,在@CachePut 使用于更新数据后可用)#result

 

相关文章:

【技术栈】Spring Cache 简化 Redis 缓存使用

​ SueWakeup 个人主页:SueWakeup 系列专栏:学习技术栈 个性签名:保留赤子之心也许是种幸运吧 ​ 本文封面由 凯楠📸 友情提供 目录 本栏传送门 1. Spring Cache 介绍 2. Spring Cache 常用注解 注:手机端浏览本文章…...

解决wrap_socket() got an unexpected keyword argument ‘ciphers‘

看报错本以为是一个简单的传参问题,没想到查到盘丝洞。 # 报错信息 wrap_socket() got an unexpected keyword argument ciphers# 报错代码段 _exception_handler() def connect(self):u"""连接MySQL数据库"""self.config_connect_a…...

【力扣hot100】128.最长连续序列

给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入:nums [100,4,200,1,3,2] 输出:4 解…...

css的text-shadow详解

CSS的text-shadow属性用于为文本添加阴影效果,以增强文本的立体感和印刷品质感。该属性可以接受多个值,每个值通过空格分隔,以定义阴影的各个方面。以下是text-shadow属性的详细介绍: 阴影颜色 (Color): 这是阴影的颜色值。它可以…...

Qt 利用共享内存实现一次只能启动一个程序(单实例运行)

Qt 利用共享内存实现一次只能启动一个程序 文章目录 Qt 利用共享内存实现一次只能启动一个程序摘要利用共享内存实现一次只能启动一个程序示例代码 关键字: Qt、 unique、 单一、 QSharedMemory、 共享内存 摘要 今天接着在公司搞我的屎山代码,按照…...

【生活知识-茶叶】

生活知识-茶叶 茶 茶 茶叶分类代表茶名功效绿茶龙井碧螺春 毛峰清热解毒、降脂减肥、提神醒脑、改善肝功能、减轻肝脏负担乌龙茶铁观音武夷岩茶冻顶乌龙茶清心明目、提神醒脑、促进新陈代谢、维护肝脏健康白茶白毫银针白牡丹贡眉清热降火、抗氧化、保护心血管、提高免疫力黄茶…...

[AIGC] 在Spring Boot中指定请求体格式

在使用Spring Boot开发Web应用的时候,我们经常会遇到需要接收并处理HTTP请求的情况。一个HTTP请求通常包括一个请求行、若干请求头和一个请求体。请求体在POST和PUT请求中特别重要,因为它通常用于向服务器传递数据。 文章目录 创建并使用一个Java Bean指…...

4核16G服务器租用优惠价格,26.52元1个月,半年149元

阿里云4核16G服务器优惠价格26.52元1个月、79.56元3个月、149.00元半年,配置为阿里云服务器ECS经济型e实例ecs.e-c1m4.xlarge,4核16G、按固定带宽 10Mbs、100GB ESSD Entry系统盘,活动链接 aliyunfuwuqi.com/go/aliyun 活动链接打开如下图&a…...

2024 Mazing 3 中文版新功能介绍Windows and macOS

iMazing 3中文版(ios设备管理软件)是一款管理苹果设备的软件, Windows 平台上的一款帮助用户管理 IOS 手机的应用程序。iMazing中文版与苹果设备连接后,可以轻松传输文件,浏览保存信息等,软件功能非常强大,界面简洁明晰…...

npm设置淘宝镜像

使用npm安装依赖时很慢,可以设置淘宝镜像,2024年1月更换了新域名。 cmd在终端中做以下操作: 检测现在的镜像地址 npm config get registry如果不是淘宝最新的镜像地址,更换为 // 清空缓存 npm cache clean --force // 切换新源…...

现代卷积神经网络

深度卷积神经网络(AlexNet) 经典机器学习的流水线: ①获取一个有趣的数据集; ②根据光学、几何学,手动对特征数据集进行预处理; ③通过标准的特征提取算法,如SIFT(尺度不变特征变…...

【wubuntu】披着Win11皮肤主题的Ubuntu系统

wubuntu - 一款外观类似于 Windows 的 Linux 操作系统,没有任何硬件限制。以下是官方的描述 Wubuntu is an operating system based on Ubuntu LTS that has a similar appearance to Windows using the open-source themes. Wubuntu also comes with a set of adva…...

Kubernetes自动化配置部署

在新建工程中,使用k8s的devops服务,自动化部署项目 1、在搭建好k8s的集群中,确认已开启devops服务; 2、新建Maven项目之后,创建dockerfile、deploy和Jenkins文件 例如: Dockerfile FROM bairong.k8s.m…...

2024年奥莱利科技趋势报告解析

2024年O’Reilly技术趋势报告解读 概述 在快速发展的技术领域,跟上最新趋势对行业内的任何人来说都至关重要。2024年O’Reilly技术趋势报告在此方面提供了关键的指导,全面概述了最重要的技术进步和模式。该年度报告基于O’Reilly著名在线学习平台280万…...

算法打卡Day14

今日任务: 1)104.二叉树的最大深度 2)559.n叉树的最大深度 3)111.二叉树的最小深度 4)222.完全二叉树的节点个数 104.二叉树的最大深度 题目链接:104. 二叉树的最大深度 - 力扣(LeetCode&#…...

Android Kotlin版封装EventBus

文章目录 Android Kotlin版封装EventBus代码封装添加依赖库定义消息类定义常量值定义注解定义工具类 使用在Activity中在Fragment中发送事件 源码下载 Android Kotlin版封装EventBus 代码封装 添加依赖库 implementation("org.greenrobot:eventbus:3.3.1")定义消息…...

VUE父子组件的传参问题

1.父组件向子组件传参 1&#xff09;这是一个父组件 //这是一个父组件 <div> <port :port-List"portList" ></port> </div> //port 这是子组件的名称export default{components: {},props: {},data() {return{portList:,}},computed: {}…...

四、C#希尔排序算法

简介 希尔排序简单的来说就是一种改进的插入排序算法&#xff0c;它通过将待排序的元素分成若干个子序列&#xff0c;然后对每个子序列进行插入排序&#xff0c;最终逐步缩小子序列的间隔&#xff0c;直到整个序列变得有序。希尔排序的主要思想是通过插入排序的优势&#xff0…...

华为认证网络工程师的市场需求大吗?

华为认证网络工程师的市场需求非常旺盛&#xff0c;这主要得益于信息技术的快速发展和网络建设的不断扩展。随着云计算、大数据、物联网等新兴技术的普及&#xff0c;企业对于数据通信和网络技术的需求日益增长&#xff0c;为网络工程师提供了广阔的就业空间。 从行业发展趋势来…...

Pytorch:nn.Upsample() 和nn.ConvTranspose2d()

nn.Upsample 原理 nn.Upsample 是一个在PyTorch中进行上采样&#xff08;增加数据维度&#xff09;的层&#xff0c;其通过指定的方法&#xff08;如nearest邻近插值或linear、bilinear、trilinear线性插值等&#xff09;来增大tensor的尺寸。这个层可以在二维或三维数据上按…...

RWKV7-1.5B-g1a从零开始:Docker镜像拉取→服务启动→API调用完整指南

RWKV7-1.5B-g1a从零开始&#xff1a;Docker镜像拉取→服务启动→API调用完整指南 1. 模型简介 rwkv7-1.5B-g1a 是一个基于RWKV-7架构的多语言文本生成模型&#xff0c;特别适合以下场景&#xff1a; 基础问答文案续写简短总结轻量中文对话 这个模型在单卡24GB显存的GPU上就…...

GetQzonehistory:5分钟学会如何永久备份你的QQ空间历史说说

GetQzonehistory&#xff1a;5分钟学会如何永久备份你的QQ空间历史说说 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾担心那些记录着青春时光的QQ空间说说会随着时间流逝而消…...

科研党必备:Python脚本批量下载DOI文献的保姆级教程(附避坑指南)

科研党必备&#xff1a;Python脚本批量下载DOI文献的保姆级教程&#xff08;附避坑指南&#xff09; 文献检索与下载是科研工作中不可或缺的环节。对于需要处理大量文献的研究者来说&#xff0c;手动逐一下载不仅效率低下&#xff0c;还容易出错。本文将详细介绍如何使用Python…...

如何在 Go 中超时终止进程及其所有子进程

本文介绍在 Go 中安全、可靠地实现进程及其整个子进程树&#xff08;含孙子进程等&#xff09;的超时终止&#xff0c;核心是利用 Unix 进程组&#xff08;process group&#xff09;机制配合 syscall.Kill(-pgid, sig)&#xff0c;并规避常见陷阱&#xff08;如信号传播失效、…...

django基于Python主流汽车价格分析可视化系统的设计与实现_nf85t54h_zl089

前言随着汽车行业的快速发展和智能化技术的不断涌现&#xff0c;车辆数据可视化和价格预测系统成为了汽车行业的重要研究领域。该系统旨在通过高效的数据处理和分析技术&#xff0c;为车辆市场提供深入的数据洞察&#xff0c;帮助用户更好地理解汽车市场的动态变化和消费者需求…...

使用Knockout.js构建完全键盘友好的无障碍导航菜单:终极指南

使用Knockout.js构建完全键盘友好的无障碍导航菜单&#xff1a;终极指南 【免费下载链接】knockout Knockout makes it easier to create rich, responsive UIs with JavaScript 项目地址: https://gitcode.com/gh_mirrors/kn/knockout 在现代Web开发中&#xff0c;创建…...

Sparrow App快速上手:5分钟学会API测试和调试

Sparrow App快速上手&#xff1a;5分钟学会API测试和调试 【免费下载链接】sparrow-app Your next-gen API testing and development tool. 项目地址: https://gitcode.com/gh_mirrors/sp/sparrow-app Sparrow App是一款下一代API测试和开发工具&#xff0c;能帮助开发者…...

实战:中优云联批量入驻退租门禁权限处理方案,50人1分钟搞定,离职秒回收

关键词&#xff1a;门禁系统、SaaS、边缘计算、RBAC、批量操作、4G无线 标签&#xff1a;物联网、智慧园区、Java后端、架构设计0. 写在前面先交代背景。我是一名园区物业的IT运维&#xff0c;平时负责维护一套老旧的门禁系统。说实话&#xff0c;这套系统用了七八年&#xff0…...

让老式PL2303芯片在Windows 10/11上重获新生:实用兼容驱动方案

让老式PL2303芯片在Windows 10/11上重获新生&#xff1a;实用兼容驱动方案 【免费下载链接】pl2303-win10 Windows 10 driver for end-of-life PL-2303 chipsets. 项目地址: https://gitcode.com/gh_mirrors/pl/pl2303-win10 前几天在整理工作室时&#xff0c;我发现了一…...

终极Windows Defender移除指南:3步彻底禁用微软安全组件,性能飙升30%

终极Windows Defender移除指南&#xff1a;3步彻底禁用微软安全组件&#xff0c;性能飙升30% 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://g…...