`
kawaii_xw
  • 浏览: 47464 次
  • 性别: Icon_minigender_2
  • 来自: 西安
社区版块
存档分类
最新评论

组件之Cache篇

阅读更多

缓存---基础理论篇

1. 缓存
缓存介于应用程序和永久性数据存储源之间,它的作用是降低应用程序直接读写永久数据存储源的频率,从而提高应用的运行性能。
缓存中的数据是数据存储源中数据的拷贝,应用程序在运行时直接读写缓存中的数据,只在某些特定时刻按照缓存中的数据来同步更新数据存储源。
缓存的介质一般是内存,所以读写速度很快。但如果缓存中存放的数据量非常大时,也会用硬盘作为缓存介质。缓存的实现不仅仅要考虑存储的介质,还要考虑到管理缓存的并发访问和缓存数据的生命周期。

2. 各类CACHE简介

2.1. Java Caching System
JSC(Java Caching System)是一个用分布式的缓存系统,是基于服务器的java应用程序。它是通过提供管理各种动态缓存数据来加速动态web应用。JCS和其他缓存系统一样,也是一个用于高速读取,低速写入的应用程序。动态内容和报表系统能够获得更好的性能。如果一个网站,有重复的网站结构,使用间歇性更新方式的数据库(而不是连续不断的更新数据库),被重复搜索出相同结果的,就能够通过执行缓存方式改进其性能和伸缩性。  
官方网站 http://jakarta.apache.org/turbine/jcs/

2.2 EHCache
EHCache 是一个纯java的在进程中的缓存,它具有以下特性:快速,简单,为Hibernate2.1充当可插入的缓存,最小的依赖性,全面的文档和测试。
官方网站 http://ehcache.sourceforge.net/ ;

2.3. OSCache
OSCache是个一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的缓存解决方案。
OSCache有以下特点:
缓存任何对象,你可以不受限制的缓存部分jsp页面或HTTP请求,任何java对象都可以缓存。
拥有全面的API--OSCache API给你全面的程序来控制所有的OSCache特性。
永久缓存--缓存能随意的写入硬盘,因此允许昂贵的创建(expensive-to-create)数据来保持缓存,甚至能让应用重启。
支持集群--集群缓存数据能被单个的进行参数配置,不需要修改代码。
缓存记录的过期--你可以有最大限度的控制缓存对象的过期,包括可插入式的刷新策略(如果默认性能不需要时)。
官方网站 http://www.opensymphony.com/oscache/

2.4. JCache
JCache是个开源程序,正在努力成为JSR-107开源规范,JSR-107规范已经很多年没改变了。这个版本仍然是构建在最初的功能定义上。
官方网站 http://jcache.sourceforge.net/

2.5. ShiftOne
ShiftOne Java Object Cache是一个执行一系列严格的对象缓存策略的Java lib,就像一个轻量级的配置缓存工作状态的框架。
官方网站 http://jocache.sourceforge.net/

2.6. SwarmCache
SwarmCache是一个简单且有效的分布式缓存,它使用IP multicast与同一个局域网的其他主机进行通讯,是特别为集群和数据驱动web应用程序而设计的。SwarmCache能够让典型的读操作大大超过写操作的这类应用提供更好的性能支持。SwarmCache使用JavaGroups来管理从属关系和分布式缓存的通讯。
官方网站 http://swarmcache.sourceforge.net

2.7. TreeCache / JBossCache 
JBossCache是一个复制的事务处理缓存,它允许你缓存企业级应用数据来更好的改善性能。缓存数据被自动复制,让你轻松进行JBoss服务器之间的集群工作。JBossCache能够通过JBoss应用服务或其他J2EE容器来运行一个MBean服务,当然,它也能独立运行。JBossCache包括两个模块:TreeCache和TreeCacheAOP。TreeCache --是一个树形结构复制的事务处理缓存。TreeCacheAOP --是一个"面向对象"缓存,它使用AOP来动态管理POJO(Plain Old Java Objects)
官方网站 http://www.jboss.org/products/jbosscache ;

2.8. WhirlyCache
Whirlycache是一个快速的、可配置的、存在于内存中的对象的缓存。它能够通过缓存对象来加快网站或应用程序的速度,否则就必须通过查询数据库或其他代价较高的处理程序来建立。
官方网站 https://whirlycache.dev.java.net/

分享到:
评论
1 楼 huanghero0663 2007-09-09  
楼主对于oscache和swarncache两种cache框架在分布式环境下的性能的对比了解么?我想既然他们都是基于Broadcast通知其他节点删除缓存方式,那么性能差别应该不大,楼主能否指教一下 ^_^

相关推荐

    一篇介绍MMU和Cache的文章

    MMU 和 Cache 都是计算机系统中非常重要的组件,它们对于系统的性能、安全性和可靠性都有着非常重要的影响。 MMU 和 Cache 的应用场景非常广泛,如计算机系统、嵌入式系统、服务器等。它们对于系统的性能和安全性...

    应用源码之-Image-Cache-master.zip

    本篇文章将深入探讨Image-Cache-master这个开源项目,它为Android开发者提供了一个高效、灵活的图片缓存解决方案。 首先,我们来理解一下“Image Cache”的概念。图片缓存是一种优化策略,通过将网络请求的图片保存...

    cache的ODBC驱动C#

    本篇文章将详细探讨如何在C#环境中使用ODBC驱动连接到Cache数据库,以及处理32位和64位系统下的差异。 首先,我们需要了解ODBC驱动的工作原理。ODBC驱动程序是数据库访问的关键组件,它作为一个中间层,介于应用...

    cache要用到的包

    在IT行业中,缓存(Cache)是提升系统性能的关键技术之一。它通过存储频繁访问的数据,减少了对主存储器或网络资源的访问时间,从而提高了应用程序的响应速度。本篇文章将详细探讨“cache要用到的包”,即`jgroups....

    springcache-1.1.0.zip

    本篇文章将深入探讨SpringCache的原理、配置以及如何结合Redis或Memcached实现高效的分布式缓存。 1. SpringCache基础 SpringCache是基于注解驱动的,允许开发者通过在方法上添加`@Cacheable`、`@CacheEvict`等注解...

    一种嵌入式微处理器cache存储体系结构设计.pdf

    《一种嵌入式微处理器cache存储体系结构设计》是一篇关于嵌入式微处理器中cache存储体系结构设计的专业论文。作者鲍东星和李晓明分别来自黑龙江大学电子工程学院和哈尔滨工业大学微电子中心,他们提出了一个基于32位...

    对jquery的ajax进行二次封装以及ajax缓存代理组件:AjaxCache详解

    在本篇文章中,我们将探讨如何对 jQuery 的 AJAX 进行封装,并实现一个简单的缓存代理组件——AjaxCache。 首先,我们需要了解如何封装 jQuery 的 AJAX。以下是一个简单的示例: ```javascript define(function ...

    基于远程硬件实验系统的多流水带Cache CPU设计.pdf

    【现代教育技术】中的这篇论文《基于远程硬件实验系统的多流水带Cache CPU设计》主要探讨了如何在清华大学计算机科学与技术系开发的远程硬件实验平台上设计一个4级流水线的CPU,该CPU能够支持多种计算操作,如算术...

    logism.zip

    在本篇中,我们将深入探讨在"Logisim"环境下实现的两个关键缓存设计——全相联Cache和4路组相连Cache。 1. 全相联Cache(Full-Associative Cache)设计: 全相联Cache的特点在于,任何主存块都可以映射到Cache中的...

    The Directory-Based Cache Coherence Protocol for the DASH Multiprocessor.pdf

    文章还提到了当前单个处理器速度的限制,以及能够复制低成本高性能处理器和VLSI组件的能力,这些因素促使人们设计出能够扩展到更多处理器的多处理器系统。文章将多处理器架构分为两大范式:消息传递(message-...

    编写轻量ajax组件第三篇实现

    - **Get缓存与服务端缓存**:支持设定方法执行结果在客户端(Get缓存)和服务端(ServerCache)的缓存时间。 这些配置选项通过属性标记的方式,使得方法能够支持特定的ajax行为。 #### 7. 内部类AjaxConfig的作用 ...

    基于Retrofit2okhttp3的数据缓存cache技术修改了缓存时间能够设置缓存时间了.rar

    本篇文章将深入探讨如何利用Retrofit2和OkHttp3的Cache机制来实现数据缓存,并且着重讲解如何修改缓存时间,以便自定义缓存策略。 首先,Retrofit2是一个类型的网络请求库,它允许开发者用Java注解来声明HTTP操作,...

    SpringBoot笔记-下篇.pdf

    整理自尚硅谷视频教程springboot高级篇,并增加部分springboot2.x的内容 一、Spring Boot与缓存 一、JSR107 Java Caching定义了5个核心接口,分别是CachingProvider, CacheManager, Cache, Entry 和 Expiry。 • ...

    cache--logic

    标题中的"cache--logic"可能指的是缓存逻辑,这在IT行业中是一个重要的概念,尤其是在优化应用程序性能时。缓存是一种存储技术,用于暂时保存经常访问的数据,以减少对主存储器(如硬盘或网络)的访问,从而提高系统...

    exb-1.5-node_modules-cache.zip

    本篇文章将深入探讨“exb-1.5-node_modules-cache.zip”这一压缩包文件中蕴含的关键知识点,尤其是它与ArcGIS开发、JavaScript、Node.js以及敏捷开发的关系。 首先,“exb-1.5-node_modules-cache.zip”这个标题...

    cache-api-1.1.1.jar中文-英文对照文档.zip

    注:下文中的 *** 代表文件名中的组件名称。 # 包含: 中文-英文对照文档:【***-javadoc-API文档-中文(简体)... (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    shiro-cache-1.4.0.jar中文-英文对照文档.zip

    注:下文中的 *** 代表文件名中的组件名称。 # 包含: 中文-英文对照文档:【***-javadoc-API文档-中文(简体)... (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    cache-api-1.1.0.jar中文-英文对照文档.zip

    注:下文中的 *** 代表文件名中的组件名称。 # 包含: 中文-英文对照文档:【***-javadoc-API文档-中文(简体)... (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    dcache_system-(1).rar_cache_dcache_system

    本篇文章将深入探讨DCache系统及其工作原理,如何计算命中率(Hit Rate),以及读写操作在DCache中的实现。 首先,理解DCache的基本结构至关重要。DCache由多个存储块(或称为缓存行)组成,每个存储块可以保存一定...

Global site tag (gtag.js) - Google Analytics