用apache JCS實現物件緩衝
這兩天客戶抱怨在某些模組操作緩慢,透過使用JCS對物件實現快取,有效的提高了執行速度.
JCS的配置很簡單:
1.在WEB-INF/classes中加入配置檔案,cache.ccf,內容如下:
jcs.default=
jcs.default.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes
jcs.default.cacheattributes.MaxObjects=100
jcs.default.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache
#時間過期
#過期時間為300秒,每300秒檢查一次
jcs.default.cacheattributes.cacheattributes.UseMemoryShrinker=true
jcs.default.cacheattributes.cacheattributes.MaxMemoryIdleTimeSeconds=300
jcs.default.cacheattributes.cacheattributes.ShrinkerIntervalSeconds=300
jcs.region.unitCache=
jcs.region.unitCache.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes
jcs.region.unitCache.cacheattributes.MaxObjects=100
jcs.region.unitCache.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache
#時間過期
#過期時間為300秒,每300秒檢查一次
jcs.unitCache.cacheattributes.cacheattributes.UseMemoryShrinker=true
jcs.unitCache.cacheattributes.cacheattributes.MaxMemoryIdleTimeSeconds=300
jcs.unitCache.cacheattributes.cacheattributes.ShrinkerIntervalSeconds=300
2.在類中定義快取變數,
//物件緩衝池
private static JCS unitCache;
並在建構函式中獲取cache:
try {
unitCache = JCS.getInstance("unitCache");
} catch (Exception e) {
log.error("獲取物件快取出錯!" + e);
}
3.這樣就可以使用cache了:
if (!CommonUtility.isNull(unitCache)) {
List lstCache = (List) unitCache.get("unitList");
if (!CommonUtility.isNull(lstCache))
return lstCache;
}
log.info("不能從緩衝中獲取物件,透過業務方法獲取!");
//do something here.
//加入緩衝機制
//把列表加入快取中
if (!CommonUtility.isNull(unitCache)) {
log.info("把列表放入緩衝池中!");
unitCache.put("unitList", list);
}
.................................
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/6906/viewspace-21891/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Duilib的雙緩衝實現,附帶GDI、WTL的雙緩衝實現UI
- JavaScript WebGL 幀緩衝區物件JavaScriptWeb物件
- 動態更新——緩衝區物件物件
- lazyload.js實現圖片緩衝載入JS
- PHP 輸出緩衝區應用PHP
- OpenGL 之 幀緩衝 使用實踐
- CSAPP緩衝實驗buflabAPP
- Libevent應用 (三) 資料緩衝
- 緩衝區分析
- javascript實現的多元素緩衝運動程式碼例項JavaScript
- 請問Jive的緩衝機制是怎麼實現的?
- 物件緩衝池--採用最近最久未使用策略(LRUCache )管理物件,同時帶有事件監聽功能物件事件
- 《高效學習OpenGL》之緩衝區物件 glGenBuffers(), glBindBuffer(), glBufferData(),glMapBuffer()物件
- 物件有多少個資料塊緩衝在Data buffer中物件
- 輸入緩衝與土狼時間的討論與實現
- 模擬實現mapreduce中環形緩衝區的讀寫過程
- JAVA進階:一個簡單Thread緩衝池的實現Javathread
- Java™ 教程(緩衝流)Java
- JavaScript 緩衝運動JavaScript
- MySQL InnoDB緩衝池MySql
- Java NIO:緩衝區Java
- 快取與緩衝快取
- C 呼叫redis緩衝Redis
- getchar緩衝區
- 雙緩衝學習
- 開關電源緩衝吸收電路:拓撲吸收、RC吸收、RCD吸收、鉗位吸收、無損吸收、LD緩衝、LR緩衝、飽和電感緩衝、濾波緩衝、振鈴_rc吸收和rcd吸收
- 你真的會用PostGIS中的buffer緩衝嗎?
- Debian 12採用 Ubuntu三重緩衝Ubuntu
- 採用四緩衝提高自繪介面的效率
- Golang併發程式設計有緩衝通道和無緩衝通道(channel)Golang程式設計
- C 標準庫IO緩衝區和核心緩衝區的區別
- Java NIO 之緩衝區Java
- Unity深度緩衝區指令Unity
- Go 緩衝通道(bufchan)用法Go
- Java整數緩衝區Java
- 【NIO】Java NIO之緩衝Java
- nginx 緩衝區構造Nginx
- 自動處理管理駕駛艙衝緩衝