后端中缓存的作用以及基于Spring框架演示实现缓存

缓存的作用及演示

现在我们使用的程序都是通过去数据库里拿数据然后展示的

长期对数据库进行数据访问

这样数据库的压力会越来越大

数据库扛不住了

创建了一个新的区域

程序访问去缓存 缓存区数据库

缓存里放数据

有效降低数据访问的压力

我们首先进行一个演示

为了演示缓存我手搓了一个案例

挑战5分钟内基于Springboot+SpringMVC+Mybatis-plus快速构建web后端三层架构-CSDN博客

计算机中主存→高速缓存→CPU,高速缓存容量小速度快,可存放一些数据在缓存中,cpu下次直接从缓存中读取

我们连续进行两次查询

会给数据库带来很大的压力

因为我们会读取很多次

所以我们要手搓缓存

我们选择在我们的业务层中去操作

创建一个哈希集合

把查询过的数据放入 每次都找一下

再次查询时就能在cache中去找了

我们也可以用redis去做 但是大材小用

用redis你的service层也需要这套逻辑

缓存可以有效降低磁盘io的次数

同理

手机验证码验证效果

业务层

控制层

Spring缓存

我们在Spring里引入了依赖

<!--        缓存的起步依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId></dependency>

接着我们要在启动响应类里面打上注解

启动缓存

package com.example.demo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;@SpringBootApplication
//开启缓存
@EnableCaching
public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}}

我们进入业务层

设置方法使用缓存

通过一个注解就能设置缓存

@Override
@Cacheable(value="cacheSpace",key="#id")
public User getById(Integer id) {return userDao.selectById(id);
}

个人号推广

博客主页

多多!-CSDN博客

Web后端开发

https://blog.csdn.net/qq_30500575/category_12624592.html?spm=1001.2014.3001.5482

Web前端开发

https://blog.csdn.net/qq_30500575/category_12642989.html?spm=1001.2014.3001.5482

数据库开发

https://blog.csdn.net/qq_30500575/category_12651993.html?spm=1001.2014.3001.5482

项目实战

https://blog.csdn.net/qq_30500575/category_12699801.html?spm=1001.2014.3001.5482

算法与数据结构

https://blog.csdn.net/qq_30500575/category_12630954.html?spm=1001.2014.3001.5482

计算机基础

https://blog.csdn.net/qq_30500575/category_12701605.html?spm=1001.2014.3001.5482

回忆录

https://blog.csdn.net/qq_30500575/category_12620276.html?spm=1001.2014.3001.5482

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

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

相关文章

spring boot配置ssl证书,支持https访问

1. 阿里云官网下载证书,云控制台搜索ssl&#xff0c;点击进入。 2.点击免费证书&#xff0c;立即购买。 3. 点击创建证书&#xff0c;填写完证书申请后&#xff0c;等待证书签发。 4. 证书签发以后&#xff0c;点击下载证书&#xff0c;spring boot选tomcat服务器类型的。 5. …

[机缘参悟-198] - 互联网时代正在逐渐消融原先的金字塔结构的企业管理架构,管理者转变成创业者是大公司是新的游戏法则,大公司转变成孵化创业的生态和平台

目录 前言&#xff1a; 一、四次工业革命 1.1 概述 1.2 引发的社会变化 二、信息革命&#xff1a;互联网、移动互联网时代特点 2.1 技术的变化&#xff1a;数字化、信息化 2.2 个体的崛起&#xff1a;个人IP化 2.3 组织架构的变化&#xff1a;扁平化 2.4 软件开发的扁…

Android开发更改JDK版本

今天在跑GitHub上面一个Android项目时&#xff0c;在Android编译时出现如下错误&#xff1a; Unsupported Java. Your build is currently configured to use Java 17.0.2 and Gradle 7.0.2.错误原因&#xff1a; JDK和Gradle版本对应出错。 本地的JDK为1.8正好可以更改为本…

跨境电商测评、采购大额下单自养号需要解决哪些技术原理?

市场上有许多伪装工具&#xff0c;但大多数只是为了方便开发人员测试系统程序&#xff0c;它们并不能针对特定的电商平台进行伪装。每个电商平台都有其独特的风控机制&#xff0c;因此&#xff0c;我们需要从硬件环境的底层配合软件控制&#xff0c;以满足各平台的检测规则。 …

永磁同步直线电机(PMLSM)控制与仿真4-永磁同步直线电机数学三环闭环控制仿真

文章目录 1、参数设置及脚本2、相电流波形3、位置波形4、速度波形5、控制电流波形6、永磁同步直线电机在实际控制中如何控制参考 写在前面&#xff1a;原本为一篇文章写完了永磁同步直线电机数学模型介绍&#xff0c;永磁同步直线电机数学模型搭建&#xff0c;以及永磁同步直线…

Jacob环境探索(兼容性、管理员、DLL位置、VS环境,COM权限)

概述&#xff1a; 最近在生产开发实践出现了很多问题&#xff0c;经过了一系列排查&#xff0c;特做如下总结 探索成果&#xff1a; 1. jacob.dll的建议位置 首先jacob的官网&#xff0c;以及官方GitHub&#xff0c;你可以从这里找到DLL文件&#xff0c;以及相关资料然后DLL文…

【APP移动端自动化测试】第一节.环境配置和adb调试工具

文章目录 前言一、Java环境搭建二、AndroidSDK环境搭建三、Android模拟器安装四、adb调试工具基本介绍 4.1 adb构成和基本原理 4.2 adb获取包名&#xff0c;界面名 4.3 adb文件传输 4.4 adb获取app启动时间 4.5 adb获取手机日志 4.6 adb其他有关…

【Kafka专栏 09】Kafka消费者如何实现如何实现消息回溯与重放:谁说“覆水难收”?

作者名称&#xff1a;夏之以寒 作者简介&#xff1a;专注于Java和大数据领域&#xff0c;致力于探索技术的边界&#xff0c;分享前沿的实践和洞见 文章专栏&#xff1a;夏之以寒-kafka专栏 专栏介绍&#xff1a;本专栏旨在以浅显易懂的方式介绍Kafka的基本概念、核心组件和使用…

Windows 11 中安装 Docker Desktop 并安装镜像

本该主要介绍在 Windows 11 中安装 Docker Desktop 时的一些准备工作&#xff0c;以及该如何下载和安装&#xff0c;然后分别使用管理界面和 Docker 命令安装两个镜像。 一、准备工作 在 Windows 11 中安装 Docker Desktop 前&#xff0c;需要做一些准备。打开 【Windows 功能…

MySQL 保姆级教程(三):排序检索数据

第 5 章 排序检索数据 5.1 排序数据 输入: SELECT help_category.name FROM help_category ORDER BY help_category.name; 输出: --------------------------------------- | name | --------------------------------------- | Account M…

ubuntu22.04安装vivado2022.2

安装依赖库 sudo apt-get update sudo apt-get upgrade sudo apt-get install libncurses5 sudo apt-get install libtinfo5 sudo apt-get install libncurses5-dev libncursesw5-dev sudo apt-get install ncurses-compat-libs 下载web安装程序 赛灵思统一安装程序 (Xilinx…

MongoDB~事务了解;可调一致性模型功能与因果一致性模型功能分析

背景 MongoDB 从 3.0版本引入 WiredTiger 存储引擎之后开始支持事务&#xff0c;MongoDB 3.6之前的版本只能支持单文档的事务&#xff0c;从 MongoDB 4.0版本开始支持复制集部署模式下的事务&#xff0c;从 MongoDB 4.2版本开始支持分片集群中的事务。 根据官方文档介绍&…

C++11 move左值转化为右值

单纯的左值只能用左值引用和右值只能用右值引用有些局限&#xff0c;在一些情况下&#xff0c;我们也需要对左值去调用右值引用&#xff0c;从而实现将左值里的内容转移到右值中 标准定义&#xff1a; 功能就是将一个左值强制转化为右值&#xff0c;然后实现移动语义 注意&…

什么是 Linux ?(Linux)

系列文章目录 第一章 什么是Linux&#xff1f; 文章目录 系列文章目录一、什么是 Linux &#xff1f;二、Linux 的发行版本总结 一、什么是 Linux &#xff1f; Linux&#xff08;Linux Is Not UniX&#xff09;&#xff0c;是一种免费使用和自由传播的类UNIX操作系统&#x…

「TCP 重要机制」滑动窗口 粘包问题 异常情况处理

&#x1f387;个人主页&#xff1a;Ice_Sugar_7 &#x1f387;所属专栏&#xff1a;计网 &#x1f387;欢迎点赞收藏加关注哦&#xff01; 滑动窗口&粘包问题&异常情况处理 &#x1f349;滑动窗口&#x1f34c;流量控制&#x1f34c;拥塞控制&#x1f34c;延时应答&…

【退役之重学Java】终结篇,暂别 Java !

一、为什么退役后要重学 Java 应该说还是对技术抱有热情的&#xff0c;而 Java 是大学时期的主修方向&#xff0c;所以退役的半年之后选择重学 Java&#xff0c;至于此前半年的经历&#xff0c;有机会再给大家讲述吧。 二、重学 Java 的经历 在三月的尾巴&#xff0c;开始重…

Perl语言入门指南:掌握文本处理与系统管理的利器!

Perl是一种高级的、解释型的编程语言&#xff0c;具有强大的文本处理能力&#xff0c;被广泛用于文本处理、系统管理、网络编程等多种任务。本文将全面介绍Perl的基本概念、语法规则、主要用途以及如何开始学习Perl。 一、Perl语言简介 1. Perl的历史 Perl由Larry Wall在1987…

JUC并发编程-第二天:线程池相关

线程池相关 线程池内置线程池的使用线程池的关闭excute方法和submit方法的区别 线程池 线程池就是一个可以复用线程的技术 public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue<Runnable> workQueue,Thread…

Linux下tar命令解压缩

tar 命令是 Unix 和 Linux 系统中用来创建归档文件以及提取归档文件的工具。它通常用于备份文件或将多个文件和目录打包成一个单独的归档文件。默认情况下&#xff0c;tar 不会对文件进行压缩&#xff0c;但可以通过结合其他压缩工具&#xff08;如 gzip 或 bzip2&#xff09;来…

矩阵转置的基本性质

矩阵转置的基本性质 flyfish 标量的转置&#xff1a;标量&#xff08;即单个数字&#xff09;的转置是其自身。向量的转置&#xff1a;列向量的转置是行向量&#xff0c;行向量的转置是列向量。矩阵的转置&#xff1a;一个 m n m \times n mn 矩阵 A \mathbf{A} A 的转置是…