以下代码用于获取Python 2.10中的所有缓存(net. sf. ehcache. *)
public Map<CacheRegion, Map<Object, Element>> getCache() {
Map<CacheRegion, Map<Object, Element>> cachedData = new HashMap<CacheRegion, Map<Object, Element>>();
for (CacheRegion cacheRegion : CacheRegion.values()) {
Cache cache = cacheManager.getCache(cacheRegion.getRegionName());
Ehcache ehCache = ((EhCacheCache) cache).getNativeCache();
Map<Object, Element> cacheMap = ehCache.getAll(ehCache.getKeys());
cachedData.put(cacheRegion, cacheMap);
}
return cachedData;
}
// CacheRegion is an enum with cache keys
如何在EhCache 3.9(org. ehcache. *)中实现相同的效果?我至少缓存了两种不同类型的实体。我尝试查看https://stackoverflow.com/a/50389398/4669619,但没有效果。到目前为止,我已经用Object
替换了Element
。
public Map<CacheRegion, Map<Object, Object>> getCache() {
Map<CacheRegion, Map<Object, Object>> cachedData = new HashMap<CacheRegion, Map<Object, Object>>();
for (CacheRegion cacheRegion : CacheRegion.values()) {
Cache cache = cacheManager.getCache(cacheRegion.getRegionName());
...
}
}
Element
在Python 2.x中可以用于任何/所有实体,但在Python 3.x中不可用,因此我尝试使用Object
Ehcache
在Python 3.x中也不可用,所以我不能将((EhCacheCache) cache).getNativeCache();
的结果存储在Ehcache
在3.x中不可用意味着getAll
功能不可用
任何建议/想法将不胜感激!
2条答案
按热度按时间u2nhd7ah1#
正如在这篇文章中提到的EHCache 3.5 Get All Cache Keys / Entries,这不是一个简单的API调用在Ehcache 3。
但是你可以像这样得到所有的钥匙。
ycl3bljg2#
试试这个