Spring Boot Cache 缓存使用

本文详细介绍了Spring Boot如何使用缓存,包括Spring的缓存支持、声明式缓存注解、开启缓存支持,特别是Spring Boot对Redis缓存的整合,通过配置文件和实战展示了Redis作为缓存的持久化优势。
摘要由CSDN通过智能技术生成

1.Spring Boot 使用 Cache

我们知道一个程序的瓶颈在于数据库,我们也知道内存的速度是远大于硬盘的速度的。当我们需要重复地获取相同的数据的时候,我们一次又一次的请求数据库或远程服务,导致大量的时间耗费在数据库查询或者远程方法调用上,导致程序性能的恶化,这便是数据缓存要解决的问题。

1.1 Spring 缓存支持

Spring 定义了 org.springframework.cache.CacheManager 和 org.springframework.cache.Cache 接口用来统一不同的缓存的技术。其中,CacheManager 是 Spring 提供的各种缓存技术抽象接口, Cache 接口包含缓存的各种操作(增加,删除,获得缓存,我们一般不会直接和此接口打交道)。

1.2 Spring 支持的 CacheManager

针对不同的缓存技术,需要实现不同的 CacheManage ,Spring 定义了如下所示的 CacheManager 实现。

CacheManager 描述
SimpleCacheManager 使用简单的 Collection 来存储缓存,主要用来测试用途
ConcurrentMapCacheManager 使用 ConcurrentMap 来存储缓存
NoOpCacheManager 仅测试用途,不会实际存储缓存
EhCacheManager 使用 EhCache 作为缓存技术
GuavaCacheManager 使用 Google Guava 的 GuavaCache 作为缓存技术
HazelcastCacheManager 使用 Hazelcast 作为缓存技术
JCacheCacheManager 支持 JCache(JSR-107)标准的实现作为缓存技术,如 Apache Commons JCS
RedisCacheManager 使用 Redis 作为缓存技术

1.3 声明式缓存

Spring 提供了4个注解来声明缓存规则。这四个注解如下:

注解 解释
@Cacheable 在方法执行前 Spring 先查看缓存中是否有数据,如果有数据,则直接返回缓存数据;如果没有,调用方法并将方法返回值放进缓存
@CachePut 一定会调用方法,并将方法返回值放到缓存中,@CachePut 的属性和 @Cacheable 保持一致
@CacheEvict 将一条或者多条数据从换从中删除
@Caching 可以通过 @Caching 注解组合多个注解策略放在一个方法上

@Cacheable,@CachePut,@CacheEvict 都有 value 属性,指定的是要使用的缓存名称;key 属性指定的是数据在缓存中的存储的键。

1.4 开启声明式缓存支持

开启声明式缓存支持十分简单,只需在配置类上使用 @EnableCaching 注解即可,如:

@SpringBootApplication
@EnableCaching
public class SpringBootDemoMybatiesApplication {
   
    public static void main(String[] args) {
        SpringApplication.run(SpringBootDemoMybatiesApplication.class, args);
    }
}

1.5 Spring Boot 的支持

在 Spring 中使用缓存技术的关键是配置 CacheManager,而 Spring Boot 为我们自动配置了多个 CacheManager 的实现。

在不做任何额外的配置的情况下,默认使用的是 SimpleCacheConf

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值