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

后端中缓存的作用以及基于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.lryc.cn/news/373224.html

相关文章:

  • Python:基础爬虫
  • 机器人运动学笔记
  • webshell三巨头 综合分析(蚁剑,冰蝎,哥斯拉)
  • stm32MP135裸机编程:启动流程分析
  • 在Pycharm使用Github Copilot
  • Docker镜像构建:Ubuntu18.04+python3.10
  • 如何进行LLM大模型推理优化
  • QLoRA:高效的LLMs微调方法,48G内存可调65B 模型
  • 力扣48. 旋转图像
  • 【踩坑日记】I.MX6ULL裸机启动时由于编译的程序链接地址不对造成的程序没正确运行
  • 【计算机网络仿真实验-实验2.6】带交换机的RIP路由协议
  • Apache网页优化
  • OpenCV形态学
  • 首途第三十三套清新简约卡片风格蓝紫渐变色短视频模板 | 苹果CMSV10主题
  • 永磁同步直线电机(PMLSM)控制与仿真2-永磁同步直线电机数学模型搭建
  • MPLS VPN一
  • 39python数据分析numpy基础之h5py读写数组数据到h5文件
  • 2024全新仿麻豆视频苹果cms源码v10影视模板
  • 这世上又多了一只爬虫(spiderflow)
  • SpringMVC框架学习笔记(七):处理 json 和 HttpMessageConverter 以及文件的下载和上传
  • 八、BGP
  • 有监督学习——支持向量机、朴素贝叶斯分类
  • 自动化测试文档
  • vue-i18n使用步骤详解(含完整操作步骤)
  • XXE漏洞修补:保护您的系统免受XML外部实体攻击
  • 去除upload的抖动效果
  • 什么是 Linux ?(Linux)
  • uni-app 怎么在tabbar使用阿里图标库
  • 勒索病毒剖析
  • 【C++11】第一部分(一万六千多字)