Java Caching System 上手篇

http://jakarta.apache.org/jcs/

Java Caching System

一、功能

做 cache Big Smile

二、安裝

1. 請至下列網址下載 jcs
http://svn.apache.org/viewvc/jakarta/jcs/trunk/tempbuild/
(PS. 示範所使用的版本為 jcs-1.2.7.9.2.jar)

2. 下載 Doug Lea's concurrent
http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/current/concurrent.tar.gz
(可用 ant 編譯)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[slayer@rat concurrent]$ ant
Buildfile: build.xml
 
help:
     [echo] To build concurrent.jar which contains the core library and misc classes: ant dist
     [echo] To clean the build created files: ant clean
 
BUILD SUCCESSFUL
Total time: 0 seconds
 
[slayer@rat concurrent]$ ant dist
Buildfile: build.xml
 
init:
 
setup.packages:
 
compile:
 
dist:
 
BUILD SUCCESSFUL
Total time: 2 seconds


3. 還需要有 commons-logging

三、名詞

Elements:目前的理解是要被放進 Caching System 的物件
Regions:你可以將 Caching System 劃分「行政區域」提供基本的 namespace 功能。此外,這樣有什麼樣的好處呢?每一區的需要更新的頻率不太一樣,可以分開設定。
Auxiliaries:Auxiliaries 是可以讓 Regions 使用的 plug-in,功能類似於 log4j 的 appender 可以將 log 出輸的對象改變。

四、一般設定

設定檔檔名為 cache.ccf
1
2
3
4
5
6
7
8
9[www.iocblog.net 来源]
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# DEFAULT CACHE REGION   
# 這是預設的 region 
 
# 這裡是設定使用什麼 Auxiliaries 可以不填,使用預設值
jcs.default=
 
# 設定使用的 cache 屬性管理類別
jcs.default.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes
 
# 設定 cache 內物件的上限
jcs.default.cacheattributes.MaxObjects=1000
 
# 設定 memory cache 的演算法
#jcs.default.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache
 
# 設定是否使用 memory shrinker
jcs.default.cacheattributes.UseMemoryShrinker=true
 
# 當有使用 memory shrinker 時,設定閒置記憶體的過期時間
jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600
 
# 設定 shinker 執行時間間隔
jcs.default.cacheattributes.ShrinkerIntervalSeconds=60
 
# 設定 element 屬性類別
jcs.default.elementattributes=org.apache.jcs.engine.ElementAttributes
 
# 設定讓 element 會「過期」
jcs.default.elementattributes.IsEternal=false
 
# 設定 element 建立後能存活多久
jcs.default.elementattributes.MaxLifeSeconds=21600
 
# 設定 element 可閒置的時間
jcs.default.elementattributes.IdleTime=1800


如果你想設定不同的 region
1
2
3
4
5
# 以此類推
jcs.myregion=
jcs.myregion.cacheattributes=
    org.apache.jcs.engine.CompositeCacheAttributes
.....


五、在程式中使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import org.apache.jcs.JCS;
import org.apache.jcs.access.exception.CacheException;
 
public class Example {
  public static void main(String[] args) throws CacheException {
    // 使用 test region
    // 如果沒有設定會引用 default 的設定
    JCS cache = JCS.getInstance("test");
 
    // 用 String 來測試
    // 因為他有實作 Serializable
    cache.put("qrtt1", "foolish");
 
    System.out.println(cache.get("qrtt1"));
 
    cache.dispose();
  }
}


六、其他

1. 還能使用 ElementHandler 來控制 Element 過期時要做些什麼 (還沒研究 XD)
2. configure 設定可參考
Region Properties http://jakarta.apache.org/jcs/RegionProperties.html
Element Attribute http://jakarta.apache.org/jcs/ElementAttributes.html
3. Auxiliaries 使用可參考 http://jakarta.apache.org/jcs/Plugins.html




文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。