SpringBoot+SpringCache实现两级缓存(Redis+Caffeine)

1. 缓存、两级缓存

1.1 内容说明

Spring cache:主要包含spring cache定义的接口方法说明和注解中的属性说明
springboot+spring cache:rediscache实现中的缺陷
caffeine简介
spring boot+spring cache实现两级缓存

使用缓存时的流程图
SpringBoot+SpringCache实现两级缓存(Redis+Caffeine)_第1张图片

1.2 Sping Cache

spring cache是spring-context包中提供的基于注解方式使用的缓存组件,定义了一些标准接口,通过实现这些接口,就可以通过在方法上增加注解来实现缓存。这样就能够避免缓存代码与业务处理耦合在一起的问题。spring cache的实现是使用spring aop中对方法切面(MethodInterceptor)封装的扩展,当然spring aop也是基于Aspect来实现的。
spring cache核心的接口就两个:Cache和CacheManager

1.2.1 Cache接口

提供缓存的具体操作,比如缓存的放入,读取,清理,spring框架中默认提供的实现有
SpringBoot+SpringCache实现两级缓存(Redis+Caffeine)_第2张图片

1.2.2 CacheManager接口

主要提供Cache实现bean的创建,每个应用里可以通过cacheName来对Cache进行隔离,每个CaheName对应一个Cache实现,spring框架中默认提供的实现与Cache的实现都是成对出现的

1.2.3 常用的注解说明
  • @Cacheable:主要应用到查询数据的方法上
  • @CacheEvict:清除缓存,主要应用到删除数据的方法上
  • @CachePut:放入缓存,主要用到对数据有更新的方法上
  • @Caching:用于在一个方法上配置多种注解
  • @EnableCaching:启用spring cache缓存,作为总的开关,在spring boot的启动类或配置类上需要加入次注解才会生效

2.实战多级缓存的用法

package com.xfgg.demo.config;

import lombok.AllArgsConstructor;
import com.github.benmanes.caffeine.cache.Caffeine;

import org.springframework.cache.CacheManager;

import org.springframework.cache.caffeine.CaffeineCacheManager;

import org.springframework.context.annotation.Bean;
import org.springframework.context

你可能感兴趣的:(java)