用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物件
- CSAPP緩衝實驗buflabAPP
- .NET 高效能緩衝佇列實現 BufferQueue佇列
- 緩衝區溢位實驗
- PHP 輸出緩衝區應用PHP
- Libevent應用 (三) 資料緩衝
- 緩衝管理
- OpenGL 之 幀緩衝 使用實踐
- 輸出緩衝
- Debian 12採用 Ubuntu三重緩衝Ubuntu
- 輸入緩衝與土狼時間的討論與實現
- JavaScript 緩衝運動JavaScript
- Java™ 教程(緩衝流)Java
- 無緩衝阻塞 chan
- Java NIO:緩衝區Java
- stdio流緩衝區
- 雙緩衝學習
- 緩衝位元組流#
- MySQL InnoDB緩衝池MySql
- 開關電源緩衝吸收電路:拓撲吸收、RC吸收、RCD吸收、鉗位吸收、無損吸收、LD緩衝、LR緩衝、飽和電感緩衝、濾波緩衝、振鈴_rc吸收和rcd吸收
- 你真的會用PostGIS中的buffer緩衝嗎?
- Honeycomb使用Apache Kafka為資料攝取提供高可用性緩衝管道ApacheKafka
- Golang併發程式設計有緩衝通道和無緩衝通道(channel)Golang程式設計
- Linux 命令 管道 緩衝區Linux
- Java NIO 之緩衝區Java
- Go 緩衝通道(bufchan)用法Go
- Java整數緩衝區Java
- Unity深度緩衝區指令Unity
- 緩衝帶裡的少年
- 緩衝區溢位漏洞的原理及其利用實戰
- PHP的輸出緩衝區PHP
- Node.js Buffer(緩衝區)Node.js
- Java NIO 之 Buffer(緩衝區)Java
- Java中縮放緩衝影像Java
- 無緩衝阻塞 chan 雜談
- java.IO緩衝流.studyJava
- 緩衝區溢位攻擊
- MySQL 配置InnoDB變更緩衝MySql