应用级缓存的工作流程以及Spring Boot缓存原理分析

作者 : 开心源码 本文共907个字,预计阅读时间需要3分钟 发布时间: 2022-05-12 共240人阅读

缓存是处理高并发、大流量数据操作性能问题的利器。缓存一般分为系统级缓存和应用级缓存,系统级缓存是由操作系统提供的缓存,不是此处探讨的内容,本文主要是阐述应用级缓存的工作流程以及Spring Boot缓存原理分析。

本文提到的缓存是指应用级缓存,应用级缓存与开发者的架构设计息息相关,例如一个在线客户量很大的网站,随着数据量的增大、访问的集中,就会出现后端持久化存储负担加重、数据库响应恶化、网站显示推迟等重大影响。而缓存就成为处理或者优化这些性能问题的关键。应用级缓存工作流程如下:

应用级缓存的工作流程

应用级缓存的工作流程可以概括为以下三个步骤:

第一步:应用程序从非持久化缓存系统(例如Redis)中查询数据,若在非持久化缓存系统中命中查询结果,则直接返回缓存中的数据。

第二步:若果未命中查询结果,则在持久化存储系统中进行查找,并将查询结果返回。

第三步:系统依照升级策略和周期,刷新非持久化缓存系统中的数据,使之与持久化存储数据保持同步。

很多开发人员基于上述原理设计自己的缓存机制。但对于Spring Boot开发人员而言是没有必要的,Spring Boot本身就提供缓存(Cache)支持,其使用方法和原理都相似于Spring对事务管理的支持。

Spring Cache是作用在方法上的,其核心思想是这样的:当我们在调用一个缓存方法时会把该方法参数和返回结果作为一个键值对存放在缓存中,等到下次利用同样的参数来调用该方法时将不再执行该方法,而是直接从缓存中获取结果进行返回。所以在使用Spring Cache的时候我们要保证我们缓存的方法对于相同的方法参数要有相同的返回结果。

开发人员使用Spring Cache编写程序,仅仅需要两步:一是公告某些方法使用缓存;二是配置Spring对Cache的支持。Spring Boot为我们提供了几个注解来支持Spring Cache快速开发。其核心主要是@Cacheable和@CacheEvict注解。使用@Cacheable标记的方法在执行后Spring Cache将缓存其返回结果,而使用@CacheEvict标记的方法会在方法执行前或者者执行后移除Spring Cache中的某些元素。

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 应用级缓存的工作流程以及Spring Boot缓存原理分析

发表回复