當前位置:首頁 » 文件管理 » java更新緩存

java更新緩存

發布時間: 2022-07-14 11:19:45

java項目頁面緩存問題

上面兩個說的都有道理,瀏覽器有瀏覽器的緩存機制,tomcat也是有緩存的,有時你發布完後不刪掉F:\apache-tomcat-6.0.35\work\Catalina這個文件夾裡面的緩存他還會是原來的效果,一般不會是tomcat下webapps文件中的項目問題

⑵ JAVA中的緩存是怎麼一回事幫忙解釋下。急急急!!!!!!謝謝

(1)Hibernate有兩個級別的緩存.一個是Session級別的緩存,它是第一級別緩存屬於進程范圍內的緩存,由Hibernate自行管理一般情況下無需進行干預.另一個是S essionFactory級別的緩存,它是第二級別的緩存屬於集群范圍與進程范圍的緩存.它可以自己進行配置與更改,而且可以動態載入與卸載.
(2)第一級緩存 第二級緩存
存放數據的形式 相互關聯的持久化對象 對象的散裝數據
緩存的范圍 事務范圍,每個事務都有單獨的第一級緩存 進程范圍或集群范圍,緩存被同一個進程或集群范圍內的所有事務共享
並發訪問策略 由於每個事務都擁有單獨的第一級緩存,不會出現並發問題,無需提供並發訪問策略 由於多個事務會同時訪問第二級緩存中相同數據,因此必須提供適當的並發 訪問策略,來保證特定的事務隔離級別
數據過期策略 沒有提供數據過期策略。處於一級緩存中的對象永遠不會過期,除非應用程序顯式清空緩存或者清除特定的對象 必須提供數據過期策略,如基於內存的緩存中的 對象的最大數目,允許對象處於緩存中的最長時間,以及允許對象處於緩存中的最長空閑時間
物理存儲介質 內存.內存和硬碟。對象的散裝數據首先存放在基於內在的緩存中,當內存中對象的數目達到數據過期策略中指定上限時,就會把其餘的對象寫入基於硬碟的緩存 中。
緩存的軟體實現 在Hibernate的Session的實現中包含了緩存的實現 由第三方提供,Hibernate僅提供了緩存適配器(CacheProvider)。用於把特定的緩存插件集成到Hibernate中 。
啟用緩存的方式 只要應用程序通過Session介面來執行保存、更新、刪除、載入和查詢資料庫數據的操作,Hibernate就會啟用第一級緩存,把資料庫中的數據以對象的形式拷貝 到緩存中,對於批量更新和批量刪除操作,如果不希望啟用第一級緩存,可以繞過Hibernate API,直接通過JDBCAPI來執行指操作。 用戶可以在單個類或類的單個集合的粒度 上配置第二級緩存。如果類的實例被經常讀但很少被修改,就可以考慮使用第二級緩存。只有為某個類或集合配置了第二級緩存,Hibernate在運行時才會把它的實例加入到第二 級緩存中。
用戶管理緩存的方式 第一級緩存的物理介質為內存,由於內存容量有限,必須通過恰當的檢索策略和檢索方式來限制載入對象的數目。Session的evit()方法可以顯式清空緩存 中特定對象,但這種方法不值得推薦。 第二級緩存的物理介質可以是內存和硬碟,因此第二級緩存可以存放大量的數據,數據過期策略的maxElementsInMemory屬性值可以控制 內存中的對象數目。管理第二級緩存主要包括兩個方面:選擇需要使用第二級緩存的持久類,設置合適的並發訪問策略:選擇緩存適配器,設置合適的數據過期策略。

⑶ JAVA 緩存 判斷 更新

如果不是從資料庫里直接改的,或者是別的系統改的。你自己系統的緩存是不知道數據被改了,所以無法自己更新。除非你約定了修改資料庫後需要通過你提供的介面手動執行緩存的重新載入。

⑷ java中如何配置2級緩存

Hibernate的二級緩存同一級緩存一樣,也是針對對象ID來進行緩存。所以說,二級緩存的作用范圍是針對根據ID獲得對象的查詢。
● 在執行各種條件查詢時,如果所獲得的結果集為實體對象的集合,那麼就會把所有的數據對象根據ID放入到二級緩存中。
● 當Hibernate根據ID訪問數據對象的時候,首先會從Session一級緩存中查找,如果查不到並且配置了二級緩存,那麼會從二級緩存中查找,如果還查不到,就會查詢資料庫,把結果按照ID放入到緩存中。
● 刪除、更新、增加數據的時候,同時更新緩存。

⑸ java 緩存 同步

有以下幾種方式可以實現:
1. 使用共享緩存:memcached 或者 redis。緩存共享,不存在不同步問題!
2. 應用觀察者設計模式。當其中一台伺服器更新緩存時,通知其他伺服器更新緩存。不過需要一個中介者伺服器作為伺服器轉發請求,通知所有其他伺服器端,就像QQ:客戶端——伺服器——客戶端。
3. 應用責任鏈設計模式。首先,讓每一台伺服器彼此相連接,形成一個責任鏈,並讓首尾節點相連,即:形成一個環。當一台伺服器接收到請求時,首先檢查本地緩存,如果存在則返回,否則,對本伺服器的下一個節點伺服器進行查找,如果找到則將其信息復制到本伺服器中並返回。如此進行下去,直到滿足一下兩個條件之一: 查找到相匹配的內容,或者已經遍歷整個環沒有找到。

結論:第一種方式存儲的數據量少,無冗餘,易操作,效率較高;第二、三種方式每台伺服器都存儲了相同的內容,容易造成數據臟讀或臟寫,而且執行效率比較低。

以上希望對你有幫助!

⑹ java實現緩存技術

session最好少用,一般系統都用session來存儲用戶信息,session用多了對系統開銷不好,緩存也盡量少用,要用的話都用在基本不會改變的數據上,不然會影響系統,如果經常改變的量,用了緩存,如:一個程序在用緩存中的數據,而另一個程序卻在修改緩存的數據,那邊程序就會出現不符合的數據了,如果回答對你有幫助,請把分給我吧,謝謝

⑺ 轉載 如何安全的更新java本地緩存

但使用緩存,不可避免的就需要對緩存進行更新。最近在做一個項目的時候,發現多個老系統里採用了一種不安全的更新方案,該方案的主要思路如下:Java代碼 /** 本地緩存 */ private List configs = null; /** 本地緩存的上次更新時間 */ private long lastUpdateTime = 0; public List queryInterfaceList() { long currentTime = System.currentTimeMillis(); //判斷本次緩存是否過期,過期則重新調用webservice查詢數據,並更新緩存 if (currentTime - lastUpdateTime > 60000) { InterfaceManageResult result = interfaceManageFacade.queryAllInterfaceList(); if (null != result && result.isSuccess()) { configs = result.getInterfaceConfigList(); } lastUpdateTime = currentTime; } if (!CollectionUtils.isEmpty(configs)) { return configs; } //本地緩存為空,則重新調用webservice查詢數據,並更新緩存 InterfaceManageResult result = interfaceManageFacade.queryAllInterfaceList(); if (null == result || !result.isSuccess()) { return null; } configs = result.getInterfaceConfigList(); return configs; } 當外部請求訪問緩存數據時:如果緩存已經過期(當前時間-緩存的上次更新時間超過緩存的有效期),則重新調用webservice訪問服務端查詢數據,然後更新緩存。如果緩存未過期,但緩存為空,則重新調用webservice訪問服務端查詢數據,然後更新緩存。仔細分析一下,該方案存在以下幾處安全隱患:如果某一時刻緩存過期,此時剛好有大量的請求並發訪問緩存數據,則會給服務端造成很大的壓力,有多少個並發請求,就會並發向服務端發起多少次webservice請求緩存第一次初始化前,如果有大量的請求並發訪問緩存數據,同樣會給服務端早晨很大的壓力。 即在某些時間點,會給服務端帶來峰值抖動,其實,造成該隱患的根本原因在於:緩存的更新時機是由外部請求直接觸發的。

⑻ Java本地緩存有哪些

下面給你介紹幾個常見的java緩存框架:
1、OSCache
OSCache是個一個廣泛採用的高性能的J2EE緩存框架,OSCache能用於任何Java應用程序的普通的緩存解決方案。
OSCache有以下特點:
緩存任何對象,你可以不受限制的緩存部分jsp頁面或HTTP請求,任何java對象都可以緩存。
擁有全面的API--OSCache API給你全面的程序來控制所有的OSCache特性。
永久緩存--緩存能隨意的寫入硬碟,因此允許昂貴的創建(expensive-to-create)數據來保持緩存,甚至能讓應用重啟。
支持集群--集群緩存數據能被單個的進行參數配置,不需要修改代碼。
緩存記錄的過期--你可以有最大限度的控制緩存對象的過期,包括可插入式的刷新策略(如果默認性能不需要時)。
2、Java Caching System
JSC(Java Caching System)是一個用分布式的緩存系統,是基於伺服器的java應用程序。它是通過提供管理各種動態緩存數據來加速動態web應用。
JCS和其他緩存系統一樣,也是一個用於高速讀取,低速寫入的應用程序。
動態內容和報表系統能夠獲得更好的性能。
如果一個網站,有重復的網站結構,使用間歇性更新方式的資料庫(而不是連續不斷的更新資料庫),被重復搜索出相同結果的,就能夠通過執行緩存方式改進其性能和伸縮性。
3、EHCache
EHCache 是一個純java的在進程中的緩存,它具有以下特性:快速,簡單,為Hibernate2.1充當可插入的緩存,最小的依賴性,全面的文檔和測試。
4、JCache
JCache是個開源程序,正在努力成為JSR-107開源規范,JSR-107規范已經很多年沒改變了。這個版本仍然是構建在最初的功能定義上。
5、ShiftOne
ShiftOne Java Object Cache是一個執行一系列嚴格的對象緩存策略的Java lib,就像一個輕量級的配置緩存工作狀態的框架。

6、SwarmCache
SwarmCache是一個簡單且有效的分布式緩存,它使用IP multicast與同一個區域網的其他主機進行通訊,是特別為集群和數據驅動web應用程序而設計的。SwarmCache能夠讓典型的讀操作大大超過寫操作的這類應用提供更好的性能支持。
SwarmCache使用JavaGroups來管理從屬關系和分布式緩存的通訊。

⑼ java緩存技術有哪些

1、OSCache

OSCache是個一個廣泛採用的高性能的J2EE緩存框架,OSCache能用於任何java應用程序的普通的緩存解決方案。

OSCache有以下特點:

(1)緩存任何對象,你可以不受限制的緩存部分jsp頁面或HTTP請求,任何java對象都可以緩存。

永久緩存--緩存能隨意的寫入硬碟,因此答應昂貴的創建(eXPensive-to-create)數據來保持緩存,甚至能讓應用重啟。

(2)支持集群--集群緩存數據能被單個的進行參數配置,不需要修改代碼。

緩存記錄的過期--你可以有最大限度的控制緩存對象的過期,包括可插入式的刷新策略(假如默認性能不需要時)。

2、Java Caching System

JSC(Java Caching System)是一個用分布式的緩存系統,是基於伺服器的java應用程序。它是通過提供治理各種動態緩存數據來加速動態web應用。

JCS和其他緩存系統一樣,也是一個用於高速讀取,低速寫入的應用程序。

動態內容和報表系統能夠獲得更好的性能。

假如一個網站,有重復的網站結構,使用間歇性更新方式的資料庫(而不是連續不斷的更新資料庫),被重復搜索出相同結果的,就能夠通過執行緩存方式改進其性能和伸縮性。

3、EHCache

EHCache 是一個純java的在進程中的緩存,它具有以下特性:快速,簡單,為Hibernate2.1充當可插入的緩存,最小的依靠性,全面的文檔和測試。

4、JCache

JCache是個開源程序,正在努力成為JSR-107開源規范,JSR-107規范已經很多年沒改變了。這個版本仍然是構建在最初的功能定義上。

5、ShiftOne

ShiftOne Java Object Cache是一個執行一系列嚴格的對象緩存策略的Java lib,就像一個輕量級的配置緩存工作狀態的框架。

6、SwarmCache

SwarmCache是一個簡單且有效的分布式緩存,它使用ip multicast與同一個區域網的其他主機進

行通訊,是非凡為集群和數據驅動web應用程序而設計的。

SwarmCache能夠讓典型的讀操作大大超過寫操作的這類應用提供更好的性能支持。

SwarmCache使用JavaGroups來治理從屬關系和分布式緩存的通訊。

(9)java更新緩存擴展閱讀

Java中緩存存在的原因:

一 般情況下,一個網站,或者一個應用,它的一般形式是,瀏覽器請求應用伺服器,應用伺服器做一堆計算後再請求資料庫,資料庫收到請求後再作一堆計算後把數據 返回給應用伺服器。

應用伺服器再作一堆計算後把數據返回給瀏覽器,這個是一個標准流程。但是隨著互連網的普及,上網的人越來越多,網上的信息量也越來越多。

資料庫每秒中接受請求的次數也是有限的,如果利用有限的資源來提供盡可能大的吞吐量呢。一個辦法:減少計算量,縮短請求流程(減少網路io或者硬碟io),這時候緩存就可以大展手腳了。

緩存的基本原理就是打破上圖中所描繪的標准流程,在這個標准流程中,任何 一個環節都可以被切斷.請求可以從緩存里取到數據直接返回。

熱點內容
卡爾頓麵包腳本策劃 發布:2025-01-21 06:34:45 瀏覽:263
界面像電腦一樣的伺服器 發布:2025-01-21 06:29:52 瀏覽:989
匿名祝福源碼 發布:2025-01-21 06:29:13 瀏覽:348
雲識別系統登陸密碼是多少 發布:2025-01-21 06:23:39 瀏覽:368
stl源碼剖析中文 發布:2025-01-21 06:14:17 瀏覽:344
我的世界手機版為什麼連不上伺服器 發布:2025-01-21 06:14:17 瀏覽:453
壓縮機的性能參數 發布:2025-01-21 06:10:34 瀏覽:607
2014年預演算法修訂歷時20年 發布:2025-01-21 06:05:46 瀏覽:191
linux切換到root用戶 發布:2025-01-21 06:05:38 瀏覽:516
php存在文件 發布:2025-01-21 06:04:51 瀏覽:171