如何配置磁盘缓存jcs

时间:2014-05-28 09:59:46

标签: java caching jcs

我是第一次实现磁盘缓存(jcs)。我想配置cache.ccf文件以允许磁盘缓存。我的cache.ccf文件具有以下配置:

jcs.region.lesson=blockDiskCache
jcs.region.lesson.cacheattributes=org.apache.commons.jcs.engine.CompositeCacheAttributes
jcs.region.lesson.cacheattributes.MaxObjects=2
jcs.region.lesson.cacheattributes.MemoryCacheName=org.apache.commons.jcs.engine.memory.lru.LRUMemoryCache


    jcs.auxiliary.blockDiskCache=org.apache.commons.jcs.auxiliary.disk.block.BlockDiskCacheFactory
       jcs.auxiliary.blockDiskCache.attributes=org.apache.commons.jcs.auxiliary.disk.block.BlockDis    kCacheAttributes
jcs.auxiliary.blockDiskCache.attributes.DiskPath=user.home/jcs_swap
jcs.auxiliary.blockDiskCache.attributes.MaxPurgatorySize=300000
jcs.auxiliary.blockDiskCache.attributes.MaxKeySize=1000000
jcs.auxiliary.blockDiskCache.attributes.blockSizeBytes=500
jcs.auxiliary.blockDiskCache.attributes.EventQueueType=SINGLE

thread_pool.default.boundarySize=2000
thread_pool.default.maximumPoolSize=150
thread_pool.default.minimumPoolSize=4
thread_pool.default.keepAliveTime=350000

thread_pool.default.whenBlockedPolicy=RUN
thread_pool.default.startUpSize=4

thread_pool.disk_cache_event_queue.useBoundary=false
thread_pool.disk_cache_event_queue.minimumPoolSize=2
thread_pool.disk_cache_event_queue.keepAliveTime=3500
thread_pool.disk_cache_event_queue.startUpSize=10

我检查了调试,我看到了以下内容:第一个对象保存在缓存中。当我保存第二个对象(内存缓存超过其最大大小)时,此对象不会保存在磁盘中。我不知道问题是在jcs.auxiliary.blockDiskCache.attributes.DiskPath属性中还是在其他配置中。

Can you help me, please?

Thanks :)

2 个答案:

答案 0 :(得分:1)

您的意思是jcs.auxiliary.blockDiskCache.attributes.DiskPath = $ {user.home} / jcs_swap?

您也可以尝试设置 jcs.region.lesson.cacheattributes.MaxObjects = 0 和/或添加 jcs.region.lesson.cacheattributes.DiskUsagePatternName = UPDATE 来帮助调试磁盘缓存设置。无论如何都应该写入磁盘。

答案 1 :(得分:0)

块磁盘辅助缓存

“阻止磁盘缓存”将缓存的存储在磁盘上。与索引磁盘缓存一样,块磁盘缓存将键保留在内存中。块磁盘高速缓存将值存储在一组固定大小的块中,而索引磁盘高速缓存则将项目以一个块的形式写入磁盘

对于项大小不同的区域,块磁盘缓存比常规索引模型具有优势。 由于所有块的大小相同 ,因此回收站非常简单。这只是块编号的列表。同样,块磁盘缓存将永远不需要进行优化。一旦达到最大密钥数,块将被重用。

位于以下位置的所有必要信息:https://commons.apache.org/proper/commons-jcs/BlockDiskCache.html

对于块磁盘缓存,KEYS存储在内存中。值存储在磁盘上。