一级缓存和二级缓存和查询缓存

标签: 缓存 缓存 缓存 | 发表时间:2013-02-19 13:22 | 作者:x1r2p3
出处:http://blog.csdn.net

A)在内存中开辟一块儿空间,把硬盘上使用的东西放在内存,将来使用时直接取

<defaultCache

       maxElementsInMemory= "10000"//最多放多少对象

       eternal= "false"//永远生存的

       timeToIdleSeconds= "120"//120s消除

       timeToLiveSeconds= "1200"//生存时间

       overflowToDisk= "true"// 溢出时放到硬盘

/>

二级缓存,SessionFactory级别的缓存,可以跨越session存在

I经常被访问

Ii 改动不大会经常改动

Iii 数量有限

如:用户,组织机构

启用过程:

a.在hibernate.cfg.xml中指定二级缓存策略 <property name="hibernate.cache.provider_class">net.sf.ehcache.hibernate.EhCacheProvider </property>

b.在src目录下引入ehcache.xml配置文件

c.在hbm.xml中添加<cache>元素 <cache usage="read-write"region="sampleCache1"/>

注释:@Cache(usage=CacheConcurrencyStrategy. READ_ONLY)Load默认使用二级缓存,iterate默认使用二级缓存,重复查询缓存

List默认二级缓存加数据,但是查询的时候不使用,只放,由于每次query的结构不一样,所以不能进行重复查询

查询缓存:用于缓存相同参数值的HQL语句及结果.基于二级缓存使用.

<property name="cache.use_query_cache">true</property>

a.在hibernate.cfg.xml中启用查询缓存

b.在执行query.list()之前,调用query.setCacheable(true);

c.缓存算法:

LRU、LFU、FIFO

Least recently Used最近不使用

Least frequently used命中率低

First in first out先进先出

memoryStoreEvictionPplicy="LRU"


作者:x1r2p3 发表于2013-2-19 13:22:05 原文链接
阅读:0 评论:0 查看评论

相关 [缓存 缓存 缓存] 推荐:

缓存算法

- lostsnow - 小彰
没有人能说清哪种缓存算法由于其他的缓存算法. (以下的几种缓存算法,有的我也理解不好,如果感兴趣,你可以Google一下  ). 大家好,我是 LFU,我会计算为每个缓存对象计算他们被使用的频率. 我是LRU缓存算法,我把最近最少使用的缓存对象给踢走. 我总是需要去了解在什么时候,用了哪个缓存对象.

Hibernate 缓存

- - ITeye博客
1数据缓存:(date caching) 是一种将数据暂时存于内存缓存去中的技术,缓存通常是影响系统性能的关键因素. 2.ORM的数据缓存策略有3中.   1.事务级缓存:  分为 数据库事务和 应用级事务,是基于Session的生命周期的实现,每个session都会在内部维持一个数据缓存, 随session的创建和消亡.

hibernate缓存,一级缓存,二级缓存,查询缓存

- - CSDN博客推荐文章
1、缓存是数据库数据在内存中的临时容器,它包含了库表数据在内存中的临时拷贝,位于数据库和访问层之间. 2、ORM在进行数据读取时,会根据缓存管理策略,首先在缓冲中查询,如果发现,则直接使用,避免数据库调用的开销. 事务级缓存:当前事务范围内的数据缓存. 应用级缓存:某个应用中的数据缓存. 分布式缓存:多个应用,多个JVM之间共享缓存.

缓存相关——缓存穿透、缓存并发、缓存失效、缓存预热、缓存雪崩、缓存算法

- - 编程语言 - ITeye博客
我们在项目中使用缓存通常都是先检查缓存中是否存在,如果存在直接返回缓存内容,如果不存在就直接查询数据库然后再缓存查询结果返回. 这个时候如果我们查询的某一个数据在缓存中一直不存在,就会造成每一次请求都查询DB,这样缓存就失去了意义,在流量大时,可能DB就挂掉了. 要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞.

Hibernate 二级缓存

- - CSDN博客推荐文章
很多人对二级缓存都不太了解,或者是有错误的认识,我一直想写一篇文章介绍一下hibernate的二级缓存的,今天终于忍不住了. 我的经验主要来自hibernate2.1版本,基本原理和3.0、3.1是一样的,请原谅我的顽固不化. hibernate的session提供了一级缓存,每个session,对同一个id进行两次load,不会发送两条sql给数据库,但是session关闭的时候,一级缓存就失效了.

App缓存管理

- - ITeye博客
无论大型或小型应用,灵活的缓存可以说不仅大大减轻了服务器的压力,而且因为更快速的用户体验而方便了用户. Android的apk可以说是作为小型应用,其中99%的应用并不是需要实时更新的,而且诟病于蜗牛般的移动网速,与服务器的数据交互是能少则少,这样用户体验才更好,这也是我们有时舍弃webview而采用json传输数据的原因之一.

关于缓存(上)

- - 搜索技术博客-淘宝
商业世界中常说的一句话是“现金为王”. 在技术世界里,与之相近的一个说法是“缓存为王”. 缓存在构建高性能web站点中有着举足轻重的作用, sql优化, 算法优化所带来的效果可能远远不如缓存带来的优化效果. 但是缓存的使用并不是零成本的,首先的一个问题是,任何缓存的增加,都会带来两大问题:. 解决这两个问题需要以下一些方法,首先是去掉缓存.

HTTP缓存算法

- - PHP源码阅读,PHP设计模式,PHP学习笔记,项目管理-胖胖的空间
HTTP协议缓存的目标是去除许多情况下对于发送请求的需求和去除许多情况下发送完整请求的需求. 以不发送请求或减少请求传输的数据量来优化整个HTTP架构,此目标的实现可以产生如下好处:. 降低对原始服务器的请求量. 减少了传送距离,降低了因为距离而产生的时延. 缓存基本处理过程包括七个步骤. 接收 – 缓存从网络中读取抵达的请求报文.

Solr之缓存篇

- - 淘宝网综合业务平台团队博客
Solr在Lucene之上开发了很多Cache功能,从目前提供的Cache类型有:. 而每种Cache针对具体的查询请求进行对应的Cache. 本文将从几个方面来阐述上述几种Cache在Solr的运用,具体如下:. (1)Cache的生命周期. (2)Cache的使用场景. (3)Cache的配置介绍.