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,如需转载请自行联系原作者

相关文章
|
4月前
|
缓存 NoSQL Java
什么是缓存?如何在 Spring Boot 中使用缓存框架
什么是缓存?如何在 Spring Boot 中使用缓存框架
168 0
|
7月前
|
缓存 NoSQL Java
【Azure Redis 缓存】示例使用 redisson-spring-boot-starter 连接/使用 Azure Redis 服务
【Azure Redis 缓存】示例使用 redisson-spring-boot-starter 连接/使用 Azure Redis 服务
107 0
|
3月前
|
缓存 NoSQL Java
Spring Boot中的分布式缓存方案
Spring Boot提供了简便的方式来集成和使用分布式缓存。通过Redis和Memcached等缓存方案,可以显著提升应用的性能和扩展性。合理配置和优化缓存策略,可以有效避免常见的缓存问题,保证系统的稳定性和高效运行。
86 3
|
3月前
|
缓存 Java 数据库连接
深入探讨:Spring与MyBatis中的连接池与缓存机制
Spring 与 MyBatis 提供了强大的连接池和缓存机制,通过合理配置和使用这些机制,可以显著提升应用的性能和可扩展性。连接池通过复用数据库连接减少了连接创建和销毁的开销,而 MyBatis 的一级缓存和二级缓存则通过缓存查询结果减少了数据库访问次数。在实际应用中,结合具体的业务需求和系统架构,优化连接池和缓存的配置,是提升系统性能的重要手段。
179 4
|
6月前
|
缓存 Java 开发工具
Spring是如何解决循环依赖的?从底层源码入手,详细解读Spring框架的三级缓存
三级缓存是Spring框架里,一个经典的技术点,它很好地解决了循环依赖的问题,也是很多面试中会被问到的问题,本文从源码入手,详细剖析Spring三级缓存的来龙去脉。
272 24
|
4月前
|
存储 缓存 Java
Spring缓存注解【@Cacheable、@CachePut、@CacheEvict、@Caching、@CacheConfig】使用及注意事项
Spring缓存注解【@Cacheable、@CachePut、@CacheEvict、@Caching、@CacheConfig】使用及注意事项
687 2
|
6月前
|
Java 数据库连接 数据库
spring复习05,spring整合mybatis,声明式事务
这篇文章详细介绍了如何在Spring框架中整合MyBatis以及如何配置声明式事务。主要内容包括:在Maven项目中添加依赖、创建实体类和Mapper接口、配置MyBatis核心配置文件和映射文件、配置数据源、创建sqlSessionFactory和sqlSessionTemplate、实现Mapper接口、配置声明式事务以及测试使用。此外,还解释了声明式事务的传播行为、隔离级别、只读提示和事务超时期间等概念。
spring复习05,spring整合mybatis,声明式事务
|
6月前
|
存储 缓存 Java
在Spring Boot中使用缓存的技术解析
通过利用Spring Boot中的缓存支持,开发者可以轻松地实现高效和可扩展的缓存策略,进而提升应用的性能和用户体验。Spring Boot的声明式缓存抽象和对多种缓存技术的支持,使得集成和使用缓存变得前所未有的简单。无论是在开发新应用还是优化现有应用,合理地使用缓存都是提高性能的有效手段。
87 1
|
7月前
|
缓存 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` 依赖并使用特定注解实现缓存逻辑。
1631 1
SpringBoot的三种缓存技术(Spring Cache、Layering Cache 框架、Alibaba JetCache 框架)
|
7月前
|
XML Java 数据库
Spring5入门到实战------15、事务操作---概念--场景---声明式事务管理---事务参数--注解方式---xml方式
这篇文章是Spring5框架的实战教程,详细介绍了事务的概念、ACID特性、事务操作的场景,并通过实际的银行转账示例,演示了Spring框架中声明式事务管理的实现,包括使用注解和XML配置两种方式,以及如何配置事务参数来控制事务的行为。
Spring5入门到实战------15、事务操作---概念--场景---声明式事务管理---事务参数--注解方式---xml方式