缓存
1,缓存的定义与作用
2,缓存的使用范围(命中率高、高访问量)
3,缓存策略(命中率,最大元素,清空策略);
4,缓存介质(内存缓存,硬盘缓存,数据库缓存)(本地缓存(ehcache,oscache)与远程缓存(memcached));
5,osCache缓存特点:
<1>缓存任何对象,不受限制地缓存部分jsp页面或http请求
<2>拥有全面的api
<3>永久缓存,缓存能随意写入硬盘,因此允许昂贵的创建数据来保存缓存,甚至能让应用重启
<4>支持集群,集群缓存数据能被单个地进行参数配置,不需要修改代码
<5>缓存记录过期,可以最大限度的控制缓存对象的过期,包括可插入式刷新策略,在默认性能不需要的时候.
6,oscache的使用,
<1>下载occache.jar,放在web-inf/lib下,配置文件oscache.properties放入web-inf/classes目录下
<2>使用jsp标签缓存部分页面<%@taglib uri="oscache" prefix="os"%>有5个标签,cache,usecached,flush,addgroup,addgroups.
7,使用过滤器缓存整个页面
<filter>
<filter-name></filter-name>
<filter-class></filter-class>
<init-param>

</init-param>
</filter>
8使用oscache api缓存java对象.
主要通过GeneralCacheAdministrator来建立、刷新和管理缓存,可以通过加载cache.properties属性来创建一个缓存实例,最好使用单例模式来创建GeneralCacheAdministrator.
9,在ibatis中使用oscache
<cacheModel id="userCache" type="OSCACHE">
<flushInterval hours="24"/>
<flushOnExecute statement="updateUser"/>
<property name="size" value="1000"/>
</cacheMode>
10ehcache的使用
<1>下载ehcache.jar,并配置ehcache.xml文件,配置各种属性.使用<defaultCache>表示
<2>属性解释:
<!--
配置自定义缓存:
name: 缓存名称。通常为缓存对象的类名(非严格标准)。
maxElementsInMemory: 设置基于内存的缓存可存放对象的最大数目。
maxElementsOnDisk: 设置基于硬盘的缓存可存放对象的最大数目。
eternal: 如果为true,表示对象永远不会过期,此时会忽略timeToIdleSeconds和timeToLiveSeconds属性,默认为false;
timeToIdleSeconds: 设定允许对象处于空闲状态的最长时间,以秒为单位。当对象自从最近一次被访问后,如果处于空闲状态的时间超过了timeToIdleSeconds属性值,这个对象就会过期。
当对象过期,EHCache将把它从缓存中清空。只有当eternal属性为false,该属性才有效。如果该属性值为0,则表示对象可以无限期地处于空闲状态。
timeToLiveSeconds:设定对象允许存在于缓存中的最长时间,以秒为单位。当对象自从被存放到缓存中后,如果处于缓存中的时间超过了 timeToLiveSeconds属性值,这个对象就会过期。
当对象过期,EHCache将把它从缓存中清除。只有当eternal属性为false,该属性才有效。如果该属性值为0,则表示对象可以无限期地存在于缓存中。timeToLiveSeconds必须大于timeToIdleSeconds属性,才有意义。
overflowToDisk: 如果为true,表示当基于内存的缓存中的对象数目达到了 maxElementsInMemory界限后,会把益出的对象写到基于硬盘的缓存中。注意:如果缓存的对象要写入到硬盘中的话,则该对象必须实现了Serializable接口才行。
memoryStoreEvictionPolicy: 缓存对象清除策略。有三种:FIFO、LFU、LRU
-->
<3>如果使用更多的缓存策略,可以添加类似的<cache>元素,其属性与<defaultCache>相同.
11,使用过滤器缓存web页面,需要在web.xml中添加过滤器
12,使用ehcache api缓存java对象
CacheManager manager=CacheManager.create();//使用默认配置文件创建
CacheManager manager=CacheManager.create("src/config/ehcache.xml")//使用指定配置文件创建
Url url=getClass().getResource("/anothername.xml");
CacheManager manager=CacheManager.create(url);//从classpath中寻找配置文件并创建.
Inputstream fis=new FileInputStream(new File("src/config/ehcahce.xml").getAbsolutePath();
CacheManager manager=CacheManager.create(fis);//使用输入流来创建.
加载一个echache.xml配置的缓存策略
Cache cache=manager.getCache("sampleCachel");
然后往cache加入元素
Element element=new Element("key1","value1");
cache.put(new Element(element));
从cache中取得元素
Element element=cache.get("key1");
结束卸载CacheManager:
manager.shutdown();

java缓存的使用的更多相关文章

  1. (转)java缓存技术,记录

    http://blog.csdn.net/madun/article/details/8569860 最近再ITEYE上看到关于讨论JAVA缓存技术的帖子比较多,自己不懂,所以上网大概搜了下,找到一篇 ...

  2. JAVA缓存技术

    介绍 JNotify:http://jnotify.sourceforge.net/,通过JNI技术,让Java代码可以实时的监控制定文件夹内文件的变动信息,支持Linux/Windows/MacOS ...

  3. Java 缓存技术

    以下仅是对map对方式讨论.没有对点阵图阵讨论.作缓存要做以下2点:  1:清理及更新缓存时机的处理: . 虚拟机内存不足,清理缓存 .. 缓存时间超时,或访问次数超出, 启动线程更新 2:类和方法的 ...

  4. JAVA缓存技术之EhCache

    最近再ITEYE上看到关于讨论JAVA缓存技术的帖子比较多,自己不懂,所以上网大概搜了下,找到一篇,暂作保存,后面如果有用到可以参考.此为转贴,帖子来处:http://cogipard.info/ar ...

  5. Java缓存

    Java中要用到缓存的地方很多,首当其冲的就是持久层缓存,针对持久层谈一下: 要实现java缓存有很多种方式,最简单的无非就是static HashMap,这个显然是基于内存缓存,一个map就可以搞定 ...

  6. JAVA缓存技术之EhCache(转)

    最近再ITEYE上看到关于讨论JAVA缓存技术的帖子比较多,自己不懂,所以上网大概搜了下,找到一篇,暂作保存,后面如果有用到可以参考.此为转贴,帖子来处:http://cogipard.info/ar ...

  7. java缓存技术(转)

    最近在做java缓存,了解了一下.以下仅是对map对方式讨论.没有对点阵图阵讨论.作缓存要做以下2点: 1:清理及更新缓存时机的处理:   . 虚拟机内存不足,清理缓存   .. 缓存时间超时,或访问 ...

  8. 高性能 Java 缓存库 — Caffeine

    http://www.baeldung.com/java-caching-caffeine 作者:baeldung 译者:oopsguy.com 1.介绍 在本文中,我们来看看 Caffeine - ...

  9. Map实现java缓存机制的简单实例

    缓存是Java中主要的内容,主要目的是缓解项目访问数据库的压力以及提升访问数据的效率,以下是通过Map实现java缓存的功能,并没有用cache相关框架. 一.缓存管理类 CacheMgr.java ...

  10. Java缓存相关memcached、redis、guava、Spring Cache的使用

    随笔分类 - Java缓存相关 主要记录memcached.redis.guava.Spring Cache的使用 第十二章 redis-cluster搭建(redis-3.2.5) 摘要: redi ...

随机推荐

  1. .NET Core 3.0之深入源码理解Configuration(二)

      文件型配置基本内容 上一篇文章讨论了Configuration的几个核心对象,本文继续讨论Configuration中关于文件型配置的相关内容.相比较而言,文件型配置的使用场景更加广泛,用户自定义 ...

  2. poj 3710 Christmas Game【博弈论+SG】

    也就是转换到树形删边游戏,详见 https://wenku.baidu.com/view/25540742a8956bec0975e3a8.html #include<iostream> ...

  3. git apply

    1. git 安装   2.git 与服务器的验证   1.生成ssh ssh-keygen -t rsa -C "1107247128@qq.com" 2.查看生成的pub文件, ...

  4. Luogu P1607 庙会班车【线段树】By cellur925

    题目传送门 据说可以用贪心做?算了算了...我都不会贪.... 开始想的是用线段树,先建出一颗空树,然后输进区间操作后就维护最大值,显然开始我忽视了班车的容量以及可以有多组奶牛坐在一起的信息. 我们肯 ...

  5. Luogu2261[CQOI2007]余数求和 【数论】By cellur925

    题目传送门 省选题竟然送了这么多分,60分直接暴力算就行.(算了,07年的省选) 数学题嘛,通常我们需要把式子展开,然后寻找一些性质化简=w=. 展开式以及寻找规律的过程lyd老师讲的很清楚T_T,放 ...

  6. 更换过Ubuntu之后经常性卡死,原因有待细究

    如题: 卡死时间: 2019-5-22-14:45 再次卡死,这次绝对不是看视频的原因了,具体什么原因还是不知道,不过我觉得就是显卡的问题,和搜索出来的问题差不多,安装了一些东西,看看行不行吧 sud ...

  7. Comet OJ - Contest #4--前缀和

    原题:Comet OJ - Contest #4-B https://www.cometoj.com/contest/39/problem/B?problem_id=1577传送门 一开始就想着暴力打 ...

  8. Hibernate中的Query对象查询所有记录

    映射文件,核心文件,实体类,工具类的内容都不变直接看测试方法中的代码: package com.yinfu.test; import java.util.List; import org.hibern ...

  9. [AHOI2005]病毒检测

    Description 科学家们在Samuel星球上的探险仍在继续.非常幸运的,在Samuel星球的南极附近,探险机器人发现了一个巨大的冰湖!机器人在这个冰湖中搜集到了许多RNA片段运回了实验基地.科 ...

  10. 并查集 HDOJ 5441 Travel

    题目传送门 题意:给一张无向图,问存在多少(a, b)表示a点到b点经过的边值小于等于x ((a,b) 和 (b, a)属于不同的方案) 分析:首先将边权值和查询x值升序排序,从前往后扫描边,累加从u ...