缓存的作用及演示
现在我们使用的程序都是通过去数据库里拿数据然后展示的
长期对数据库进行数据访问
这样数据库的压力会越来越大
数据库扛不住了
创建了一个新的区域
程序访问去缓存 缓存区数据库
缓存里放数据
有效降低数据访问的压力
我们首先进行一个演示
为了演示缓存我手搓了一个案例
挑战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); }