當前位置:首頁 » 硬碟大全 » 本地文件緩存java
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

本地文件緩存java

發布時間: 2022-06-13 15:05:30

① 哪位了解java數據緩存技術有哪些

一、什麼是緩存
1、Cache是高速緩沖存儲器 一種特殊的存儲器子系統,其中復制了頻繁使用的數據以利於快速訪問
2、凡是位於速度相差較大的兩種硬體/軟體之間的,用於協調兩者數據傳輸速度差異的結構,均可稱之為 Cache

常見的緩存技術有哪些?

一、操作系統緩存

1、文件系統提供的Disk Cache:操作系統會把經常訪問到的文件內容放入到內存當中,由文件系統來管理

2、當應用程序通過文件系統訪問磁碟文件的時候,操作系統從Disk Cache當中讀取文件內容,加速了文件讀取速度

3、Disk Cache由操作系統來自動管理,一般不用人工干預,但應當保證物理內存充足,以便於操作系統可以使用盡量多的內存充當Disk Cache,加速文件讀取速度

4、特殊的應用程序對文件系統Disk Cache有很高的要求,會繞開文件系統Disk Cache,直接訪問磁碟分區,自己實現Disk

5、Cache策略

  • Oracle的raw device(裸設備) – 直接拋棄文件系統

  • MySQL的InnoDB: innodb_flush_method = O_DIRECT

二、資料庫緩存

    緩存策略:a、Query Cache;b、Data Buffer

三、應用程序緩存

包括對象緩存、查詢緩存、頁面緩存

四、web伺服器端緩存

  • 基於代理伺服器模式的Web伺服器端緩存,如squid/nginx

  • Web伺服器緩存技術被用來實現CDN(內容分發網路 content delivery network)

  • 被國內主流門戶網站大量採用

  • 不需要編程,但僅限於新聞發布類網站,頁面實時性要求不高

五、基於ajax的瀏覽器緩存

  • 使用AJAX調用的時候,將資料庫在瀏覽器端緩存

  • 只要不離開當前頁面,不刷新當前頁面,就可以直接讀取緩存數據

  • 只適用於使用AJAX技術的頁面

② java如何清除數據緩存

清除Java緩存的方法
步驟一:
找到Java的安裝目錄(默認為C:\Program Files\Java)選擇當前使用的jre版本,如果用的版本為jre5則進入jre5文件夾,如果用的版本為jre6則進入jre6文件夾。在該文件夾下進入bin文件夾。雙擊打開文件javacpl.exe
2014下半年教師資格證統考大備戰 中學教師資格考試 小學教師資格考試 幼兒教師資格考試 教師資格證面試
步驟二:
在常規選項中的臨時Internet文件點擊「設置」按鈕再點擊「刪除文件」按鈕,刪除所有的臨時文件。
步驟三:
刪除完緩存之後,需要關閉所有瀏覽器。再次打開瀏覽器進入虛擬實驗系統即可。

③ java怎樣將數據保存到緩存中,之後再保存

Java中可以使用隊列來保存數據,當使用的時候,加上鎖,防止其他進程訪問,當不用的時候保存到資料庫裡面,示例如下:

packagecom.henry;
importjava.util.HashMap;
importjava.util.Map;
importjava.util.Random;
importjava.util.concurrent.locks.ReadWriteLock;
importjava.util.concurrent.locks.ReentrantReadWriteLock;

publicclassCacheDataTest{
staticMap<Integer,Object>dataMap=newHashMap<Integer,Object>();
staticReadWriteLocklock=newReentrantReadWriteLock();//創建讀寫鎖的實例
staticObjectgetData(Integerkey){
lock.readLock().lock();//讀取前先上鎖
Objectval=null;
try{
val=dataMap.get(key);
if(val==null){
//
lock.readLock().unlock();
lock.writeLock().lock();
try{
//可能已經由其他線程寫入數據
if(val==null){
//dataMap.put(key,"");//queryfromdb
val=queryDataFromDB(key);
}
}finally{
//
lock.readLock().lock();
//Unlockwrite,stillholdread
lock.writeLock().unlock();
}
}
}finally{
lock.readLock().unlock();//最後一定不要忘記釋放鎖
}
System.out.println("getdatakey="+key+">val="+val);
returnval;
}

staticObjectqueryDataFromDB(Integerkey){
Objectval=newRandom().nextInt(1000);
dataMap.put(key,val);
System.out.println("writeintodatakey="+key+">val="+val);
returnval;
}

publicstaticvoidmain(String[]args){
for(inti=0;i<10;i++){
newThread(newRunnable(){publicvoidrun(){
getData(newRandom().nextInt(5));
}}).start();
}
}
}

④ 如何清除JAVA緩存

java清除緩存辦法:
1.禁止客戶端緩存要在<head>中加入類似如下內容:

<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">

或 <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">

2.在伺服器的動態網頁中禁止緩存,要加入類似如下腳本

response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);

⑤ 如何安全的更新java本地緩存

java安全的更新本地緩存的方式如下:當外部請求訪問緩存數據時:如果緩存已經過期(當前時間-緩存的上次更新時間超過緩存的有效期),則重新調用webservice訪問服務端查詢數據,然後更新緩存。如果緩存未過期,但緩存為空,則重新調用webservice訪問服務端查詢數據,然後更新緩存。<pre t="code" l="java">/** 本地緩存 */
private List<InterfaceConfig> configs = null;
/** 本地緩存的上次更新時間 */
private long lastUpdateTime = 0;
public List<InterfaceConfig> 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;
}

⑥ 轉載 如何安全的更新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幾種緩存技術介紹說明

1、TreeCache / JBossCache

JBossCache是一個復制的事務處理緩存,它允許你緩存企業級應用數據來更好的改善性能。緩存數據被自動復制,讓你輕松進行JBoss伺服器之間 的集群工作。JBossCache能夠通過JBoss應用服務或其他J2EE容器來運行一個MBean服務,當然,它也能獨立運行。

2、WhirlyCache

Whirlycache是一個快速的、可配置的、存在於內存中的對象的緩存。它能夠通過緩存對象來加快網站或應用程序的速度,否則就必須通過查詢資料庫或其他代價較高的處理程序來建立。

3、SwarmCache

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

4、JCache

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

5、ShiftOne

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

⑧ java中如何將file緩存化,然後寫入本地

File file = new File("F:\\私人地帶\\寬頻賬號.txt");
try {
FileInputStream fs = new FileInputStream(file);
BufferedReader br = new BufferedReader(new InputStreamReader(fs,"GBK"));
String subStr = "";

File toFile = new File("F:\\dd.txt");
if(toFile.exists()) toFile.delete();
toFile.createNewFile();

BufferedWriter bw = new BufferedWriter(new FileWriter(toFile));
while(null != (subStr = br.readLine())){
System.out.println(subStr);
bw.write(subStr);
}
bw.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

⑨ java如何清除數據緩存

java清除緩存辦法:
1.禁止客戶端緩存要在<head>中加入類似如下內容:

<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">

或 <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">

2.在伺服器的動態網頁中禁止緩存,要加入類似如下腳本

response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);

⑩ 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來管理從屬關系和分布式緩存的通訊。