从文件存储和检索JCS缓存

时间:2016-08-04 16:04:48

标签: java spring caching jboss jcs

我们正在将身份验证令牌存储在JCS中,在重新启动服务器时,缓存上下文丢失了。为了解决这个问题,在停止服务器时,决定将JCS值列表存储到文件中,重新启动时,读取文件并将其存储回JCS。请帮我将JCS缓存列表存储到文件或任何其他可能的解决方案中。

我无法改变在缓存中存储令牌的正确实现。

cache = JCS.getInstance("uniqueKey");
if (cache.get(key) == null) {
   cache.put(key, value);
}

1 个答案:

答案 0 :(得分:1)

在缓存中存储值时,可以添加indexedDiskCacheFactory的辅助。这会将密钥和数据存储在cache.ccf文件中配置的目录中。  只需在cache.ccf中添加以下代码段:

预先确定用于缓存的区域:

jcs.region.outputCache=DC
jcs.region.outputCache.cacheattributes.DiskUsagePatternName=UPDATE

索引磁盘路径

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=d:/cache/dev/raf
jcs.auxiliary.DC.attributes.MaxKeySize=100000`

这应该可以解决问题,一旦重新启动服务器,缓存就会从文件中获取值。