缓存元数据
JCS 提供了更多方法,向应用程序添加缓存所用的方法只是其中的一小部分。例如,它提供了收集缓存对象和缓存区域元数据的实用程序。您可以轻松检索以下内容:
缓存键名称
创建缓存项的时间
缓存可以存在的最长时间
缓存过期时间
清单 1 中的例子显示如何检索缓存项的元数据:
清单 1. 检索缓存项的元数据
try {
JCSAdminBean admin = new JCSAdminBean();
LinkedList linkedList = admin.buildElementInfo(regionName);
ListIterator iterator = linkedList.listIterator();
while (iterator.hasNext()) {
CacheElementInfo info = (CacheElementInfo)iterator.next();
System.out.println("Key: " + info.getKey());
System.out.println("Creation Time: " + info.getCreateTime());
System.out.println("Maximum Life (seconds): " + info.getMaxLifeSeconds());
System.out.println("Expires in (seconds): " + info.getExpiresInSeconds());
}
} catch (Exception e) {
}
缓存项的元数据很有用,但获取各个缓存区域的元数据也很有帮助。这个信息让您知道缓存有多少数据,它们会进入哪个区域,包括缓存丢失、缓存提示和缓存更新。清单2 中的示例显示如何获得此信息:
清单 2. 检索缓存区域的元数据
try {
JCSAdminBean admin = new JCSAdminBean();
LinkedList linkedList = admin.buildCacheInfo();
ListIterator iterator = linkedList.listIterator();
while (iterator.hasNext()) {
CacheRegionInfo info = (CacheRegionInfo)iterator.next();
CompositeCache compCache = info.getCache();
System.out.println("Cache Name: " + compCache.getCacheName());
System.out.println("Cache Type: " + compCache.getCacheType());
System.out.println("Cache Misses (not found): " + compCache.getMissCountNotFound());
System.out.println("Cache Misses (expired): " + compCache.getMissCountExpired());
System.out.println("Cache Hits (memory): " + compCache.getHitCountRam());
System.out.println("Cache Updates: " + compCache.getUpdateCount());
}
} catch (Exception e) {
}
收集缓存区域和项的元数据能帮助您分析 Web 站点的哪些区域和项目需要优化。元数据也能帮助您管理时间敏感型的缓存数据。例如,您可以使用每个缓存项的最长生命周期和过期时间来为需要更新数据的特定用户刷新缓存数据。
更多介绍:这里