SpringBoot:redis分布式缓存

前言

应用系统需要通过Cache来缓存不经常改变得数据来提高系统性能和增加系统吞吐量,避免直接访问数据库等低速存储系统。缓存的数据通常存放在访问速度更快的内存里或者是低延迟存取的存储器,服务器上。应用系统缓存,通常有如下作用:
  • 缓存web系统的输出,如伪静态页面。
  • 缓存系统的不经常改变的业务数据,如用户权限,字典数据.配置信息等

大家都知道springBoot项目都是微服务部署,A服务和B服务分开部署,那么它们如何更新或者获取共有模块的缓存数据,或者给A服务做分布式集群负载,如何确保A服务的所有集群都能同步公共模块的缓存数据,这些都涉及到分布式系统缓存的实现。(ehcache可以通过Terracotta组件一个缓存集群,这个暂时不讲)

但是ehcache的设计并不适合做分布式缓存,所以今天用redis来实现分布式缓存。

架构图:

SpringBoot:redis分布式缓存

 一二级缓存服务器

使用Redis缓存,通过网络访问还是不如从内存中获取性能好,所以通常称之为二级缓存从内存中取得的缓存数据称之为一级缓存。当应用系统需要查询缓存的时候,先从一级缓存里查找,如果有,则返回,如果没有查找到,则再查询二级缓存,架构图如下

SpringBoot:redis分布式缓存

 Spring Boot 2 自带了前面俩种缓存的实现方式,本文将简单实现第三种,高速一二级缓存实现

Redis分布式缓存

引入redis的starter

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

相关推荐