Redis模块二:缓存分类 + Redis模块三:常见缓存(应用)

缓存大致可以分为两大类:
1)本地缓存
2)分布式缓存

目录

本地缓存

分布式缓存

常见缓存的使用

[本地缓存:Spring Cache](#本地缓存:Spring Cache)

分布式缓存:Redis


本地缓存

本地缓存也叫单机缓存,也就是说可以应⽤在单机环境下的缓存。所谓的单机环境是指,将服务部署到⼀台服务器上,如下图所示:

举个例子:

本地缓存相当于每家企业的公司规定⼀样,不同的公司规定也是不同的,比如上班时间,不同的公司上班时间规定也是不同的,对于企事业单位来说⼀般要求 9:00-17:00 上班,而对于酒吧来说,这个时间就完全不适合了。

所以,本地缓存的特征是只适⽤于当前系统。

分布式缓存

分布式缓存是指可以应⽤在分布式系统中的缓存。所谓的分布式系统是指将⼀台服务器部署到多台服务器,并且通过负载分发将⽤户的请求按照⼀定的规则分发到不同服务器,如下图所示:

举个例子:

分布式缓存相当于适⽤于所有公司的规定,⽐如无论是任何公司都不能偷税漏税,不能做违反法律的事情,这种情况就和分布式缓存很像,适⽤于所有的系统。⽐如我们在分布式系统中的服务器 A 中存储了⼀个缓存 key=themyth,那么在服务器 B 中也可以读取到 key=themyth 的数据,这样情况就是分布式缓存的作⽤。

常见缓存的使用

本地缓存 的常见使⽤:Spring Cache、MyBatis 的缓存等。
分布式缓存的常见使⽤:Redis 和 Memcached。

本地缓存:Spring Cache

在 Spring Boot 项⽬,可以直接使⽤ Spring 的内置 Cache(本地缓存),只需要完成以下三个步骤就可以正常使⽤了:

  1. 开启缓存

  2. 操作缓存

  3. 调⽤缓存

在 Spring Boot 的启动类上添加如下代码,开启缓存:

① 开启缓存

② 编写缓存操作代码

在 Service 层增加三个缓存操作的方法:添加缓存、修改缓存、删除缓存,示例代码如下:

③ 编写触发(调⽤)代码

以上步骤执行完之后,可以使用 Postman 模拟调⽤来查看缓存。

分布式缓存:Redis

在 Spring 框架中我们也可以直接操作Redis缓存,它的操作流程如下图所示:

Redis 和 Memcached 的区别

**1.存储方式不同:**memcache 把数据全部存在内存之中,断电后会挂掉,数据不能超过内存⼤⼩;Redis 默认是在内存上,但是redis可以被持久化在磁盘,可以认为 redis 本身有两份数据,一部分在内存上,另一部分在硬盘上,内存和磁盘的数据几乎是一致的,内存里面存的数据是最新的,磁盘里面是每隔一段时间会将内存里面的快照写入到磁盘里面的,磁盘中的数据是为了防止内存数据的丢失,这样能保证数据的安全性和持久性;
2.数据⽀持类型:memcache 对数据类型⽀持相对简单;Redis 有复杂的数据类型;
3.存储值⼤⼩不同:Redis 最⼤可以达到 512mb,memcache 只有 1mb。

总结:通常情况下,如果是单机 Spring 项⽬ ,会直接使⽤ Spring Cache 作为本地缓存,如果是分布式环境 ⼀般会使⽤ Redis

相关推荐
容器( ु⁎ᴗ_ᴗ⁎)ु.。oO20 分钟前
MySQL事务
数据库·mysql
cyt涛2 小时前
MyBatis 学习总结
数据库·sql·学习·mysql·mybatis·jdbc·lombok
Rookie也要加油3 小时前
01_SQLite
数据库·sqlite
liuxin334455663 小时前
教育技术革新:SpringBoot在线教育系统开发
数据库·spring boot·后端
看山还是山,看水还是。3 小时前
MySQL 管理
数据库·笔记·mysql·adb
fishmemory7sec3 小时前
Koa2项目实战2(路由管理、项目结构优化)
数据库·mongodb·koa
momo小菜pa4 小时前
【MySQL 09】表的内外连接
数据库·mysql
Jasonakeke4 小时前
【重学 MySQL】四十九、阿里 MySQL 命名规范及 MySQL8 DDL 的原子化
数据库·mysql
程序猿小D4 小时前
第二百六十九节 JPA教程 - JPA查询OrderBy两个属性示例
java·开发语言·数据库·windows·jpa
小宇成长录4 小时前
Mysql:数据库和表增删查改基本语句
数据库·mysql·数据库备份