posts - 15,  comments - 34,  trackbacks - 27

The following document illustrates several basic JCS configurations. As you'll see, using JCS can be as simple as creating a single memory cache for you application. However, with a few configuration changes, you can quickly enable some distributed caching features that can scale your application even further.

Building a cache.ccf file

Configuring the JCS can be as simple as your needs. The most basic configuration would be a pure memory cache where every region takes the default values. The complete configuration file (cache.ccf) could look like this:

# DEFAULT CACHE REGION   

jcs.
default=
jcs.
default.cacheattributes=
    org.apache.jcs.engine.CompositeCacheAttributes
jcs.
default.cacheattributes.MaxObjects=1000
jcs.
default.cacheattributes.MemoryCacheName=
    org.apache.jcs.engine.memory.lru.LRUMemoryCache
        
If you want to add memory shrinking then you can add these lines: 

jcs.
default.cacheattributes.cacheattributes.UseMemoryShrinker=true
jcs.
default.cacheattributes.cacheattributes.MaxMemoryIdleTimeSeconds=3600
jcs.
default.cacheattributes.cacheattributes.ShrinkerIntervalSeconds=60

Adding a disk cache is as simple as telling it what folder to use. It is recommended that you add a disk cache. If you want to add a disk cache to your default parameters, then (1) add this to the bottom of the file to create the auxiliary:

jcs.auxiliary.DC=
    org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheFactory
jcs.auxiliary.DC.attributes
=
    org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheAttributes
jcs.auxiliary.DC.attributes.DiskPath
=g:/dev/jakarta-turbine-stratum/raf

and (2) change the first line to:

jcs.default=DC

It is a good idea to specify the system.GroupIdCache, so add this to the file:

jcs.system.groupIdCache=DC
jcs.system.groupIdCache.cacheattributes
=
    org.apache.jcs.engine.CompositeCacheAttributes
jcs.system.groupIdCache.cacheattributes.MaxObjects
=10000
jcs.system.groupIdCache.cacheattributes.MemoryCacheName
=
    org.apache.jcs.engine.memory.lru.LRUMemoryCache

If you want to predefine a specific region, say called testCache1, then add these lines:

jcs.region.testCache1=DC
jcs.region.testCache1.cacheattributes
=
    org.apache.jcs.engine.CompositeCacheAttributes
jcs.region.testCache1.cacheattributes.MaxObjects
=1000
jcs.region.testCache1.cacheattributes.MemoryCacheName
=
    org.apache.jcs.engine.memory.lru.LRUMemoryCache
jcs.region.testCache1.cacheattributes.UseMemoryShrinker
=true
jcs.region.testCache1.cacheattributes.MaxMemoryIdleTimeSeconds
=3600
jcs.region.testCache1.cacheattributes.ShrinkerIntervalSeconds
=60

If you want to add a lateral cache for distribution (the TCP Lateral Auxiliary is recommended), then add these lines to the bottom of the file to define the auxiliary:

jcs.auxiliary.LTCP=
    org.apache.jcs.auxiliary.lateral.LateralCacheFactory
jcs.auxiliary.LTCP.attributes
=
    org.apache.jcs.auxiliary.lateral.LateralCacheAttributes
jcs.auxiliary.LTCP.attributes.TransmissionTypeName
=TCP
jcs.auxiliary.LTCP.attributes.TcpServers
=localhost:1111
jcs.auxiliary.LTCP.attributes.TcpListenerPort
=1110
jcs.auxiliary.LTCP.attributes.PutOnlyMode
=false

See the TCP Lateral documentation for more information. If you want to set up testCache1 to use this, then change the definition to:

jcs.region.testCache1=DC,LTCP

A few comments on configuration

Auxiliary definitions are like log4j appenders, they are defines and then associated with a region like a log4j category.

The order of configuration file is unimportant, though you should try to keep it organized for your own sake.

Configuration is being refactored and is subject to change. It should only become easier.

The complete file

The complete file from above would look like this:

# DEFAULT CACHE REGION   

jcs.default=DC,LTCP
jcs.default.cacheattributes=
    org.apache.jcs.engine.CompositeCacheAttributes
jcs.default.cacheattributes.MaxObjects=1000
jcs.default.cacheattributes.MemoryCacheName=
    org.apache.jcs.engine.memory.lru.LRUMemoryCache

# System CACHE REGION   
jcs.system.groupIdCache=DC,LTCP
jcs.system.groupIdCache.cacheattributes=
    org.apache.jcs.engine.CompositeCacheAttributes
jcs.system.groupIdCache.cacheattributes.MaxObjects=10000
jcs.system.groupIdCache.cacheattributes.MemoryCacheName=
    org.apache.jcs.engine.memory.lru.LRUMemoryCache

# PRE-DEFINED CACHE REGIONS   

jcs.region.testCache1=DC,LTCP
jcs.region.testCache1.cacheattributes=
    org.apache.jcs.engine.CompositeCacheAttributes
jcs.region.testCache1.cacheattributes.MaxObjects=1000
jcs.region.testCache1.cacheattributes.MemoryCacheName=
    org.apache.jcs.engine.memory.lru.LRUMemoryCache
jcs.region.testCache1.cacheattributes.UseMemoryShrinker=true
jcs.region.testCache1.cacheattributes.MaxMemoryIdleTimeSeconds=3600
jcs.region.testCache1.cacheattributes.ShrinkerIntervalSeconds=60

# AVAILABLE AUXILIARY CACHES   
jcs.auxiliary.DC=
    org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheFactory
jcs.auxiliary.DC.attributes=
    org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheAttributes
jcs.auxiliary.DC.attributes.DiskPath=g:/dev/jakarta-turbine-stratum/raf
jcs.auxiliary.DC.attributes.maxKeySize=100000

jcs.auxiliary.LTCP=
    org.apache.jcs.auxiliary.lateral.LateralCacheFactory
jcs.auxiliary.LTCP.attributes=
    org.apache.jcs.auxiliary.lateral.LateralCacheAttributes
jcs.auxiliary.LTCP.attributes.TransmissionTypeName=TCP
jcs.auxiliary.LTCP.attributes.TcpServers=localhost:1111
jcs.auxiliary.LTCP.attributes.TcpListenerPort=1110
jcs.auxiliary.LTCP.attributes.PutOnlyMode=false
posted on 2005-02-04 11:21 jacky 阅读(726) 评论(0)  编辑  收藏 所属分类: Open source

只有注册用户登录后才能发表评论。


网站导航:
 
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

常用链接

留言簿(10)

随笔档案

文章分类

文章档案

相册

收藏夹

java

搜索

  •  

最新评论