Spring Boot 缓存

Spring Boot 缓存

缓存

缓存是一种提高应用程序性能的方式。它储存在应用和持久数据库之间。高速缓存储存之前使用过的数据,以便尽可能减少数据库的调用。

优点

将通常会重复使用的数据缓存是一个非常有效的提高应用程序速度的方法。我们将频繁请求的数据存在内存中,以避免在用户每次需要数据时都要调用高消耗的服务后端。来自内存的数据访问确实比来自数据库、文件系统等存储的数据访问或其他服务调用要快。

缓存和缓冲区之间的区别

缓存 缓冲区
使用最近使用方案 使用先进先出方案
长寿命 短寿命
取决于页面缓存大小 取决于内存中的原始块I/O区
从缓存读 写入缓冲区
提高读取性能 提高写入性能

Spring Boot缓存注解

Spring Boot为以下缓存提供商提供集成方法:

  • JCache (JSR-107) (EhCache 3, Hazelcast, Infinispan, and others)
  • EhCache 2.x
  • Hazelcast
  • Infinispan
  • Couchbase
  • Redis
  • Caffeine
  • Simple Cache

在class path中提供上述默认缓存提供商选项后,Spring boot会自动配置缓存。缓存功能在应用中可以通过 @EnableCaching 生效。

Maven

spring-boot-starter-cache 库中包含缓存的模组

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

@EnableCaching

通过 @Enablecaching 注解可以启用缓存。如果当前没有 CacheManager 的实例被创建,则创建一个实例。它会扫描一个测定的提供商,如果当前没有缓存提供商,则它会使用同步HashMap来建立一个内存缓存。

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;

@SpringBootApplication
@EnableCaching
public class SpringBootCachingApplication {
   

    public static void main(String[] args) {
   
        SpringApplication.run(SpringBootCachingApplication.class, args);
    }
}

@Cacheable

Cacheable是方法级别的注解。它为方法的返回值特定一个缓存。@Cacheable 注解将结果储存到缓存区。

本例中,我们主要的目标是将数据缓存在服务层,其中,我们会主动延迟请求恢复时间,以模拟实际的服务端调用。由于程序的模拟等待,第一次点击请求的响应将有一个延迟,而后续的调用将会得到明显更快的响应。

在第一次调用中,Employee的值会从数据库中取得,并储存在缓存中。在第二次调用中,Employee的值会从缓存中取得。

package com.t
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值