Spring 声明式缓存特点

简介:

1.缓存意义

可扩展性,可靠性和高性能是现代J2EE应用程序的必备要求。不管客户端类型如何,请求处理通常都涉及到对性能有负面影响的操作,比如从不同的数据源收集信息和执行复杂的计算。 缓存是提高企业应用程序性能的最重要的实践之一。 每个应用程序都有自己的缓存要求,必须不断调整以确保不会发生性能下降。尤其是分布式缓存系统,缓存服务的目标。大量远程调用速度特别慢,会占用宝贵的网络带宽,引发性能问题。

2.缓存的基本准则

  • 通过添加缓存来减少远程调用

  • 缓存只读数据,如地区信息

  • 给定的一组参数值总是返回相同的信息,如果可以容忍陈旧数据,则可缓存动态数据。

  • 要缓存的数据量应该是可控的,否则最终会使用太多的内存

  • 跨集群缓存动态数据并同步每个节点中的数据是困难的

  • 应该避免缓存实时数据(如股市行情)和敏感数据

  • 缓存可以引入与安全和审计有关的问题??

2.声明式缓存优点

声明式缓存不涉及任何编程,因此它是一种更容易,更快速的应用和调整缓存服务的方式。

高速缓存服务的配置可以完全在Spring IoC容器中完成。

声明式缓存特点:

  • 提供一个统一,更简单,更易于使用的API

  • 提供声明式缓存刷新以防止陈旧数据的存储

  • 支持不同的声明式配置策略

  • 可以很容易地扩展来支持额外的缓存提供程序


反之 编程式缓存

  • 代码难以理解,核心功能难以看清

  • 代码难以维护。对缓存提供者的API被嵌入并遍布在应用程序中

  • 代码很难测试

  • 代码很难重用


所以编程式风格带来的优势:

  • 更清晰地分离责任

  • 更高的模块化

  • 设计决定的晚期约束,开发人员可以推迟做出有关缓存实现和调优的决策。



分布式缓存流程

caching-interceptor-118047.jpgflushing-interceptor-127107.jpg


缓存启动并运行后,您将查找需要将缓存对象存储在文件系统中的情况,或者在群集中的节点中缓存缓存中的更改。缓存提供者能够借助Java序列化来执行这些功能,这意味着要存储在缓存中的对象应该实现接口java.io.Serializable。




本文转自 randy_shandong 51CTO博客,原文链接:http://blog.51cto.com/dba10g/1979106,如需转载请自行联系原作者

相关文章
|
2月前
|
缓存 NoSQL Java
【Azure Redis 缓存】示例使用 redisson-spring-boot-starter 连接/使用 Azure Redis 服务
【Azure Redis 缓存】示例使用 redisson-spring-boot-starter 连接/使用 Azure Redis 服务
|
1月前
|
缓存 Java 开发工具
Spring是如何解决循环依赖的?从底层源码入手,详细解读Spring框架的三级缓存
三级缓存是Spring框架里,一个经典的技术点,它很好地解决了循环依赖的问题,也是很多面试中会被问到的问题,本文从源码入手,详细剖析Spring三级缓存的来龙去脉。
Spring是如何解决循环依赖的?从底层源码入手,详细解读Spring框架的三级缓存
|
18天前
|
Java 数据库连接 数据库
spring复习05,spring整合mybatis,声明式事务
这篇文章详细介绍了如何在Spring框架中整合MyBatis以及如何配置声明式事务。主要内容包括:在Maven项目中添加依赖、创建实体类和Mapper接口、配置MyBatis核心配置文件和映射文件、配置数据源、创建sqlSessionFactory和sqlSessionTemplate、实现Mapper接口、配置声明式事务以及测试使用。此外,还解释了声明式事务的传播行为、隔离级别、只读提示和事务超时期间等概念。
spring复习05,spring整合mybatis,声明式事务
|
17天前
|
存储 缓存 Java
在Spring Boot中使用缓存的技术解析
通过利用Spring Boot中的缓存支持,开发者可以轻松地实现高效和可扩展的缓存策略,进而提升应用的性能和用户体验。Spring Boot的声明式缓存抽象和对多种缓存技术的支持,使得集成和使用缓存变得前所未有的简单。无论是在开发新应用还是优化现有应用,合理地使用缓存都是提高性能的有效手段。
19 1
|
2月前
|
缓存 NoSQL Java
SpringBoot的三种缓存技术(Spring Cache、Layering Cache 框架、Alibaba JetCache 框架)
Spring Cache 是 Spring 提供的简易缓存方案,支持本地与 Redis 缓存。通过添加 `spring-boot-starter-data-redis` 和 `spring-boot-starter-cache` 依赖,并使用 `@EnableCaching` 开启缓存功能。JetCache 由阿里开源,功能更丰富,支持多级缓存和异步 API,通过引入 `jetcache-starter-redis` 依赖并配置 YAML 文件启用。Layering Cache 则提供分层缓存机制,需引入 `layering-cache-starter` 依赖并使用特定注解实现缓存逻辑。
448 1
SpringBoot的三种缓存技术(Spring Cache、Layering Cache 框架、Alibaba JetCache 框架)
|
2月前
|
XML Java 数据库
Spring5入门到实战------15、事务操作---概念--场景---声明式事务管理---事务参数--注解方式---xml方式
这篇文章是Spring5框架的实战教程,详细介绍了事务的概念、ACID特性、事务操作的场景,并通过实际的银行转账示例,演示了Spring框架中声明式事务管理的实现,包括使用注解和XML配置两种方式,以及如何配置事务参数来控制事务的行为。
Spring5入门到实战------15、事务操作---概念--场景---声明式事务管理---事务参数--注解方式---xml方式
|
2月前
|
缓存 Java Spring
Spring缓存实践指南:从入门到精通的全方位攻略!
【8月更文挑战第31天】在现代Web应用开发中,性能优化至关重要。Spring框架提供的缓存机制可以帮助开发者轻松实现数据缓存,提升应用响应速度并减少服务器负载。通过简单的配置和注解,如`@Cacheable`、`@CachePut`和`@CacheEvict`,可以将缓存功能无缝集成到Spring应用中。例如,在配置文件中启用缓存支持并通过`@Cacheable`注解标记方法即可实现缓存。此外,合理设计缓存策略也很重要,需考虑数据变动频率及缓存大小等因素。总之,Spring缓存机制为提升应用性能提供了一种简便快捷的方式。
41 0
|
2月前
|
缓存 NoSQL Java
惊!Spring Boot遇上Redis,竟开启了一场缓存实战的革命!
【8月更文挑战第29天】在互联网时代,数据的高速读写至关重要。Spring Boot凭借简洁高效的特点广受开发者喜爱,而Redis作为高性能内存数据库,在缓存和消息队列领域表现出色。本文通过电商平台商品推荐系统的实战案例,详细介绍如何在Spring Boot项目中整合Redis,提升系统响应速度和用户体验。
56 0
|
2月前
|
缓存 NoSQL Java
【Azure Redis 缓存】定位Java Spring Boot 使用 Jedis 或 Lettuce 无法连接到 Redis的网络连通性步骤
【Azure Redis 缓存】定位Java Spring Boot 使用 Jedis 或 Lettuce 无法连接到 Redis的网络连通性步骤
|
2月前
|
缓存 Java Spring
Java本地高性能缓存实践问题之在Spring Boot中启用缓存支持的问题如何解决
Java本地高性能缓存实践问题之在Spring Boot中启用缓存支持的问题如何解决