OsCache MemCached EhCache
Memcache:分布式内存对象缓存系统,占用其他机子的内存。很多互联网,负载均衡三台(以三台为例)web服务器可以共享一台Memcache的资源。传递的信息以键值对的形式存储。传递的数据要实现序列化。
--------------------------------------------------------------------------------------------------------------------------
Oscache:页面级缓存(网上强调最多的东西),占用本机的内存资源。可 以选择缓存到硬盘,如存取到硬盘重启服务也可重新获得上次持久化的资源,而如果缓存到内存就不行。一般没必要缓存到硬盘,因为I/O操作也是比较耗资源,和从数据库取往往优势很小。Oscache存取数据的作用域分为application和session两种。
--------------------------------------------------------------------------------------------------------------------------
EhCache:Hibernate缓存,DAO缓存,安全性凭证缓存(Acegi),Web缓存,应用持久化和分布式缓存。
EhCache在默认情况下,即在用户未提供自身配置文件ehcache.xml或ehcache-failsafe.xml时,EhCache会依据其自身Jar存档包含的ehcache-failsafe.xml文件所定制的策略来管理缓存。如果用户在classpath下提供了ehcache.xml或ehcache-failsafe.xml文件,那么EhCache将会应用这个文件。如果两个文件同时提供,那么EhCache会使用ehcache.xml文件的配置。EhCache默认内容如下:
<ehcache>
<diskStore path="C:\Acegi6" />
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
maxElementsOnDisk="10000000"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"
/>
</ehcache>
属性说明:
diskStore:指定数据在磁盘中的存储位置。
defaultCache:当借助CacheManager.add("demoCache")创建Cache时,EhCache便会采用<defalutCache/>指定的的管理策略
以下属性是必须的:
maxElementsInMemory - 在内存中缓存的element的最大数目
maxElementsOnDisk - 在磁盘上缓存的element的最大数目
eternal - 设定缓存的elements是否永远不过期。如果为true,则缓存的数据始终有效,如果为false那么还要根据timeToIdleSeconds,timeToLiveSeconds判断
overflowToDisk - 设定当内存缓存溢出的时候是否将过期的element缓存到磁盘上
以下属性是可选的:
timeToIdleSeconds - 当缓存在EhCache中的数据前后两次访问的时间超过timeToIdleSeconds的属性取值时,这些数据便会删除.
timeToLiveSeconds - 缓存element的有效生命期
diskPersistent - 在VM重启的时候是否启用磁盘保存EhCache中的数据,默认是false。
diskExpiryThreadIntervalSeconds - 磁盘缓存的清理线程运行间隔,默认是120秒。每个120s,相应的线程会进行一次EhCache中数据的清理工作
memoryStoreEvictionPolicy - 当内存缓存达到最大,有新的element加入的时候, 移除缓存中element的策略。默认是LRU(最近最少使用),可选的有LFU(最不常使用)和FIFO(先进先出)
分享到:
相关推荐
osCache虽然功能强大,但在Java缓存领域,还有其他如EHCache、Memcached和Redis等解决方案。每种缓存都有其特点和适用场景,比如EHCache同样适用于本地缓存,而Memcached和Redis更适合分布式缓存环境。 总结,...
缓存技术有多种,常见的缓存技术包括 OScache、Memcached、Redis 等。OSCache 是一种流行的缓存技术,广泛应用于 Java 开发中。Memcached 是一种高性能的缓存系统,广泛应用于大型网站中。 MySQL 缓存解决方案 ...
- **对比Memcached**:Memcached是分布式内存对象缓存系统,适用于大型分布式系统,而Oscache主要用于单机应用,且主要关注Java环境。 6. **最佳实践** - **合理设置缓存大小**:根据实际需求和服务器资源,合理...
4. Java缓存_project:这个文件夹可能包含了上述所有缓存技术的实际应用项目,可能是一个整合了Ehcache、Memcached和OSCache的示例应用。开发者可能在这些项目中比较了不同缓存系统的性能,或者展示了如何根据应用...
该压缩包中有一个WORD和一个PPT,WORD中介绍...PPT中介绍了缓存体系,JVM内存模型,JCONSOLE监控工具的使用,Oscache缓存架构 Ehcache缓存架构 Memcached缓存架构 JiveCache缓存架构 Terracotta JVM级缓存架构等相关技术
- **缓存**: oscache,ehcache,Memcached等。 - **调度**: Quartz,Java Timer Scheduler,Spring Scheduler。 - **连接池**: dbcp,c3p0等。 - **规则引擎**: jBoss Rules。 - **搜索引擎**: Lucene等。 - *...
操作系统磁盘缓存 减少磁盘机械操作 数据库缓存 减少文件系统I/O 应用程序缓存 减少对数据库的查询 Web服务器缓存 减少应用服务器请求 客户端浏览器缓存 减少对网站的访问
- **Hibernate二级缓存**:通过第三方缓存提供者如EHCache或OSCache实现,提高Web应用性能。 2. **查询缓存**:Hibernate查询缓存通过缓存查询结果,避免重复执行相同的查询。 #### 八、页面缓存与动态页面静态化 ...
2. **Cache策略**:对象级缓存如HashMap在单机环境下可能无法适应集群环境,需要采用分布式缓存如Ehcache、JBossCache、OSCache,或者集中式缓存如Memcached。选择哪种取决于项目需求。 3. **线程和定时器**:在...
- **第三方缓存组件**:如 EhCache、OSCache。 使用二级缓存的条件: - 数据不会被第三方修改。 - 数据大小在可接受范围内。 - 数据更新频率较低。 - 同一数据被频繁访问。 - 非关键数据。 #### 5. Hibernate ...