日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Hibernate 二级缓存和查询缓存

發布時間:2023/12/14 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hibernate 二级缓存和查询缓存 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一級緩存:
?? ?1,在session上面有一個一級緩存;一級緩存的生命周期和session相同,一級緩存最大生命周期就是一個線程;在web環境下面,session的最大生命周期就是一次請求;
?? ?2,一級緩存可以用來干嘛?
?? ??? ?1,只能有限的提高一點點系統性能;
?? ??? ?2,最重要的功能:提供給了一個臨時存放持久化對象的空間;

在更多的情況下,我們要提高的性能的數據往往是不同請求,請求的相同數據;

二級緩存概念:
1,生命周期為整個應用的緩存(二級緩存是sessionFactory上的緩存,能提供整個應用中所有的session使用,可以在不同的請求之間共享緩存的數據)
2,所有的get,load方法,總是先查一級緩存,再查二級緩存,如果都沒有,再去數據庫里面查詢。

附加:二級緩存的原理;
二級緩存其實就是個緩存.什么是緩存?其實簡單理解就是一個Map;

4,二級緩存有一些性能的指標
? ?1、命中率(總的從二級緩存中取得的數量/總的取的數量)
? ?2、最大對象數量;
? ?3、最大空閑時間;
? ?4, 移除數據策略;FIFO ? FILO ? LRU
5,二級緩存實際上就是一個緩存,所以,hibernate并沒有實現自己的二級緩存框架,而是用的開源的緩存框架。

Hibernate中二級緩存的使用:
1,常見的開源的二級緩存框架

2,Ehcache作為hibernate二級緩存
? ? 1,ehcache相關jar包;
? ? 2,拷貝ehcache.xml(ehcache的配置文件);
? ? 3,告訴hibernate,我現在用的是哪一個緩存框架;
? ? 4,hibernate中配置好二級緩存:

? ? ?5,指定哪些實體對象需要二級緩存: ? ? ? ? 1,在映射文件中添加;

?

?

3,usage的作用:usage代表對象緩存策略;怎么使用二級緩存;
? ? ? ? ? 1,usage="read-only" :放到二級緩存里面的對象是只讀,不能被直接修改(性能最高)
? ? ? ? ? 2,usage="read-write":允許讀寫(對并發支持較好)
? ? ? ? ? 3,usage="nonstrict-read-write":允許讀寫,但是在并發事務情況下會產生臟數據
? ? ? ? ? 4,usage="transactional" :允許讀寫,并且支持全事務(只能在ApplicationServer環境下有用)

4,ehcache的配置:
? ? ? ? ? 1,maxElementsInMemory:該緩存池放在內存中最大的緩存對象個數;
? ? ? ? ? 2,eternal:是否永久有效,如果設置為true,內存中對象永不過期;
? ? ? ? ? 3,timeToIdleSeconds:緩存對象最大空閑時間,單位:秒;
? ? ? ? ? 4,timeToLiveSeconds:緩存對象最大生存時間,單位:秒;
? ? ? ? ? 5,overflowToDisk:當內存中對象超過最大值,是否臨時保存到磁盤;
? ? ? ? ? 6,maxElementsOnDisk:能保存到磁盤上最大對象數量;
? ? ? ? ? 7,diskExpiryThreadIntervalSeconds:磁盤失效線程運行時間間隔,默認是120秒
? ? ? ? ? 8,memoryStoreEvictionPolicy:當達到maxElementsInMemory限制時,Ehcache將會根據指定的策略去清理內存。
?? ?默認策略是LRU(最近最少使用),可以設置為FIFO(先進先出)或是LFU(較少使用)

? ?說明:
? ? 1,默認情況下,所有的對象都是緩存在ehcache的defaultCache中;
? ? 2,一定注意,dafaultCache,eternal不能設置為true
? ? 3,把一個類放在指定的二級緩存區域中(可以細粒度的管理二級緩存的性能);
? ? ? ? ?1,給一個類添加region屬性(二級緩存區塊的名稱)

總結

以上是生活随笔為你收集整理的Hibernate 二级缓存和查询缓存的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。