導航:首頁 > 編程語言 > java緩存代碼

java緩存代碼

發布時間:2023-01-24 15:53:09

『壹』 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實現簡單的緩存機制原理

package qinbo hui;

/*

設計思想來自-回欽波(qq: )

*/

public class CacheConfModel implements java io Serializable{

private long beginTime;

private boolean isForever = false;

private int rableTime;

public long getBeginTime() {

return beginTime;

}

public void setBeginTime(long beginTime) {

this beginTime = beginTime;

}

public boolean isForever() {

return isForever;

}

public void setForever(boolean isForever) {

this isForever = isForever;

}

public int getDurableTime() {

return rableTime;

}

public void setDurableTime(int rableTime) {

this rableTime = rableTime;

}

}

package qinbo hui;

import java util *;

import test CacheConfModel;

/*

設計思想來自-回欽波(qq: )

*/

public class CacheMgr {

private static Map cacheMap = new HashMap();

private static Map cacheConfMap = new HashMap();

private CacheMgr(){

}

private static CacheMgr cm = null;

public static CacheMgr getInstance(){

if(cm==null){

cm = new CacheMgr();

Thread t = new ClearCache();

t start();

}

return cm;

}

/**

* 增加緩存

* @param key

* @param value

* @param ccm 緩存對象

* @return

*/

public boolean addCache(Object key Object value CacheConfModel ccm){

boolean flag = false;

cacheMap put(key value);

cacheConfMap put(key ccm);

System out println( now addcache== +cacheMap size());

return true;

}

/**

* 刪除緩存

* @param key

* @return

*/

public boolean removeCache(Object key){

cacheMap remove(key);

cacheConfMap remove(key);

System out println( now removeCache== +cacheMap size());

return true;

}

/**

* 清除緩存的類

* @author wanglj

* 繼承Thread線程類

*/

private static class ClearCache extends Thread{

public void run(){

while(true){

Set tempSet = new HashSet();

Set set = cacheConfMap keySet();

Iterator it = erator();

while(it hasNext()){

Object key = it next();

CacheConfModel ccm = (CacheConfModel)cacheConfMap get(key);

//比較是否需要清除

if(!ccm isForever()){

if((new Date() getTime() ccm getBeginTime())>= ccm getDurableTime()* * ){

//可以清除 先記錄下來

tempSet add(key);

}

}

}

//真正清除

Iterator tempIt = erator();

while(tempIt hasNext()){

Object key = tempIt next();

cacheMap remove(key);

cacheConfMap remove(key);

}

System out println( now thread================> +cacheMap size());

//休息

try {

Thread sleep( * L);

} catch (InterruptedException e) {

// TODO Auto generated catch block

e printStackTrace();

}

}

}

}

lishixin/Article/program/Java/hx/201311/25737

『叄』 使用java實現以個簡單的緩存機制

你這個分數太少了吧,程序到是有,不過給你有點可惜
CacheMgr.java
import java.util.*;

import cn.javass.framework.cache.vo.CacheConfModel;
public class CacheMgr {
private static Map cacheMap = new HashMap();
private static Map cacheConfMap = new HashMap();

private CacheMgr(){

}
private static CacheMgr cm = null;
public static CacheMgr getInstance(){
if(cm==null){
cm = new CacheMgr();
Thread t = new ClearCache();
t.start();
}
return cm;
}
/**
* 增加緩存
* @param key
* @param value
* @param ccm 緩存對象
* @return
*/
public boolean addCache(Object key,Object value,CacheConfModel ccm){
boolean flag = false;
cacheMap.put(key, value);
cacheConfMap.put(key, ccm);

System.out.println("now addcache=="+cacheMap.size());
return true;
}
/**
* 刪除緩存
* @param key
* @return
*/
public boolean removeCache(Object key){
cacheMap.remove(key);
cacheConfMap.remove(key);

System.out.println("now removeCache=="+cacheMap.size());

return true;
}
/**
* 清除緩存的類
* @author wanglj
* 繼承Thread線程類
*/
private static class ClearCache extends Thread{
public void run(){
while(true){
Set tempSet = new HashSet();
Set set = cacheConfMap.keySet();
Iterator it = set.iterator();
while(it.hasNext()){
Object key = it.next();
CacheConfModel ccm = (CacheConfModel)cacheConfMap.get(key);
//比較是否需要清除
if(!ccm.isForever()){
if((new Date().getTime()-ccm.getBeginTime())>= ccm.getDurableTime()*60*1000){
//可以清除,先記錄下來
tempSet.add(key);
}
}
}
//真正清除
Iterator tempIt = tempSet.iterator();
while(tempIt.hasNext()){
Object key = tempIt.next();
cacheMap.remove(key);
cacheConfMap.remove(key);

}
System.out.println("now thread================>"+cacheMap.size());
//休息
try {
Thread.sleep(60*1000L);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
CacheConfModel.java

public class CacheConfModel implements java.io.Serializable{
private long beginTime;
private boolean isForever = false;
private int rableTime;
public long getBeginTime() {
return beginTime;
}
public void setBeginTime(long beginTime) {
this.beginTime = beginTime;
}
public boolean isForever() {
return isForever;
}
public void setForever(boolean isForever) {
this.isForever = isForever;
}
public int getDurableTime() {
return rableTime;
}
public void setDurableTime(int rableTime) {
this.rableTime = rableTime;
}
}
順便說一句,緩存的管理不是靠時間久來計算的,是靠最大不活動間隔計算的,你的設計思想有問題

『肆』 java怎麼把變數放到緩存中

java變數放到緩存中的機制如下:

Java中有中間緩存變數來儲存其單個表達式的值,而j的自增自減的結果依然保留在原來的變數儲存區。因為本體是j的值,而單個表達式的值是中間產生的一個臨時變數值,是在整條計算表達式結束後就可以拋棄的值,所以用個臨時中間緩存變數在放就可以了。這就可以實現自增自減運算在計算時值的加減1順序差異產生的表達式與本體值差異的兩個變數儲存。

如下代碼:

packagecom.qiu.lin.he;

publicclassCeShi{
publicstaticvoidmain(String[]args){
for(inti=0;i<10;i++){
for(intj=0;j<10;j++){
inttemp=i;//中間變數,進行緩存
i=j;
j=temp;
System.out.println(i+"和j的值為"+j);
}
}

}

}

結果如下:

『伍』 java 中如何進行頁面緩存

可以在要執行的頁面中通過set方法設置要緩存的內容,之後通過get方式獲取到設置的內容
舉例:
第一個訪問頁面:
request.setAttribute("username",zhangsan");
第二個跳轉頁面:
Srting username = request.getAttribute(''username'');
此時即可獲取到username的存儲信息。

閱讀全文

與java緩存代碼相關的資料

熱點內容
考駕照怎麼找伺服器 瀏覽:882
阿里雲伺服器如何更換地區 瀏覽:970
手機app調音器怎麼調古箏 瀏覽:501
銳起無盤系統在伺服器上需要設置什麼嗎 瀏覽:17
紅旗計程車app怎麼應聘 瀏覽:978
如何編寫linux程序 瀏覽:870
吉利車解壓 瀏覽:248
java輸入流字元串 瀏覽:341
安卓軟體沒網怎麼回事 瀏覽:785
dvd壓縮碟怎麼導出電腦 瀏覽:274
冒險島什麼伺服器好玩 瀏覽:541
如何在伺服器上做性能測試 瀏覽:793
命令序列錯 瀏覽:259
javaif的條件表達式 瀏覽:576
手機app上傳的照片怎麼找 瀏覽:531
雲伺服器面臨哪些威脅 瀏覽:748
c語言各種編譯特點 瀏覽:177
路由器多種加密方法 瀏覽:604
程序員阻止電腦自動彈出定位 瀏覽:168
如何做伺服器服務商 瀏覽:763