缓存
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. (水题)Codeforces - 630H - Benches

    https://codeforces.com/problemset/problem/630/H 又一个组合数学的问题,我们先考虑在 $n$ 列中选出 $5$ 列来放椅子,然后对第一列有 $n$ 种放法 ...

  2. hihocoder 1584 Bounce(找规律)

    传送门 题意 略 分析 我们观察几张图 发现菱形的边长为n-1和m-1的公约数 将图简化一下 接下来我们计算只经过一次的点,分成两类 1.与边相交 num1=x+y 2.未与边相交,在菱形内 num2 ...

  3. python string类型 bytes类型 bytearray类型

    一.python3对文本和二进制数据做了区分.文本是Unicode编码,str类型,用于显示.二进制类型是bytes类型,用于存储和传输.bytes是byte的序列,而str是unicode的序列. ...

  4. 洛谷P2564 [SCOI2009]生日礼物(单调队列)

    传送门 准确的来说这个应该叫尺取法? 先对所有的点按$x$坐标进行排序 我们维护两个指针$l,r$,每一次令$r$不断右移直到所有颜色齐全,再不断右移$l$直到颜色数不足,那么此时$[l-1,r]$这 ...

  5. chrome调试中resource改到application中了

    如题,看视频的时候发现在resource下面查看cookie,但是自己试的时候发现没有了这个工具, google之后发现原来该位置了

  6. parse.urljoin

    parse.urljoin(former,later): 用former的域名拼接later的路径,如果later有域名,则进行忽略

  7. 条形码问题 dp+求某个序列在某种排列中的序号的方法

    题目 条形码是一种由亮条(Light Bar)和暗条(Dark Bar)交替出现且以暗条为起头的符号,每条都占有若干个单位宽.图33-1给出了一个含有4个条的条形码,它延续了1+2+3+1=7单位的宽 ...

  8. windows session 管理

    Killing an Oracle process from inside Oracle I had a following situation few days ago – I was runnin ...

  9. Linux下cpu过高问题排查

    原文地址:https://blog.csdn.net/chenjunan888/article/details/80447800 在服务器报cpu过高时,可使用以下命令,快速导出堆栈信息,以方便查看具 ...

  10. Spark MLlib编程API入门系列之特征提取之主成分分析(PCA)

    不多说,直接上干货! 主成分分析(Principal Component Analysis,PCA), 将多个变量通过线性变换以选出较少个数重要变量的一种多元统计分析方法. 参考 http://blo ...