## 为什么需要缓存
* 对于数据库改动很少的数据,高频次的调用,会徒增数据库的压力。
* 从缓存中获取数据,比直接访问数据库获取要快很多。
* 直接访问一个已经存在的对象,要比从数据创建一个对象快。
* 缓存的架构发展很迅速,从本地缓存 到 集群缓存 再到 分布式缓存(数据网格)。
* 分布式系统一般会有一级缓存、二级缓存、要求更高些的会有三级缓存。
* 但要用好缓存并不是那么简单,我们还需要具有缓存穿透、缓存雪崩对应的解决方案。
## 缓存使用办法
官方文档:https://docs.spring.io/spring/docs/current/spring-framework-reference/integration.html#cache
## 微服务间调用缓存
目前JPower工程里的[feign调用](./微服务远程调用/声明式服务调用Feign.md)已经实现了缓存,需要调用其他微服务的接口时,只需要使用缓存类调用即可,例如用户缓存如下
![](https://img.kancloud.cn/61/1a/611a924f863495c236ab6cb599ffd0ae_3360x2018.png)
使用办法如下
~~~
TbCoreUser user = UserCache.getUserByPhone(phone,tenantCode);
~~~
微服务调用在boot模块项目不存在
- 序言
- 开发环境准备
- 环境要求
- 环境安装
- 基础环境安装
- Nacos安装
- Sentinel安装
- 插件安装
- 导入工程
- 运行工程
- 工程测试
- JPower特性
- 系统启动器
- 多终端令牌认证
- 系统鉴权
- 鉴权API
- 鉴权配置
- API权限配置
- 接口放行配置
- 数据权限
- redis缓存
- 动态网关
- 聚合文档
- SaaS多租户
- 概念
- 使用
- Xss防注入
- 日志记录
- 操作日志&错误日志
- SQL打印
- feign请求日志&配置
- gateway日志
- 服务日志打印
- 导入导出
- 字典查询
- 系统文件上传下载
- 接口监控
- 代码生成器
- 配置文件共享
- Mybatis过滤器
- 配置说明
- 高级实战
- nacos动态配置
- Seata分布式事务
- 简介
- docker启动
- 微服务配置
- 微服务远程调用
- 声明式服务调用 Feign
- 熔断机制 Sentinel
- sentinel流控
- 简介
- 微服务配置
- 配置nacos对接
- APM监控&链路追踪
- 简介
- 安装
- 微服务接入
- SpringBootAdmin监控
- ELK分布式日志追踪系统
- ELK简介
- ELK一键部署
- 微服务日志对接ELK
- JPower-Chat
- 配置说明
- 生产部署
- docker部署
- docker安装
- docker-compose安装
- harbor安装
- 部署步骤
- 版本升级
- 1.0.1升级到2.0.0
- 2.0.0升级到2.0.2
- 2.0.2升级2.1.0
- 2.1.0升级到2.1.1
- 2.1.1升级到2.1.2
- 2.1.2升级到2.1.4