ehcache 默认大小_运行时的Ehcache缓存大小

是的,使用Ehcache,您可以配置缓存并仅通过Java代码检索其大小(无XML配置)。集成一切的确切方法取决于您的特定架构;我将假设泽西做API和Guice用于依赖注入。

定义缓存

通过依赖注入使缓存管理器可用。这可以通过Guice模块完成:

@Provides

@Singleton

CacheManager provideCacheManager() {

CacheManager cacheManager = CacheManager.create();

/* very basic cache configuration */

CacheConfiguration config = new CacheConfiguration("mycache", 100)

.timeToLiveSeconds(60)

.timeToIdleSeconds(30)

.statistics(true);

Cache myCache = new Cache(config);

cacheManager.addCacheIfAbsent(myCache);

return cacheManager;

}

请注意,mycache已启用统计信息。

同样,使用缓存可以完全用Java代码完成,但取决于您的架构和设计。通常我使用方法拦截(通过AOP)来做这个,但这是另一个主题。

通过REST API获取缓存统计信息

鉴于您的CacheManager可通过依赖注入获得,您可以将其连接到REST端点并允许访问缓存统计信息:

@Path("stats")

@Produces("text/plain")

public class StatsResource {

@Inject private CacheManager cacheManager;

@GET

public String stats() {

StringBuffer sb = StringBuffer();

/* get stats for all known caches */

for (String name : cacheManager.getCacheNames()) {

Cache cache = cacheManager.getCache(name);

Statistics stats = cache.getStatistics();

sb.append(String.format("%s: %s objects, %s hits, %s misses\n",

name,

stats.getObjectCount(),

stats.getCacheHits(),

stats.getCacheMisses()

));

}

return sb.toString();

}

}

现在,您可以通过REST调用获取有关缓存的信息:

GET /stats

HTTP/1.1 200 OK

Content-Type: text/plain; charset=utf-8

mycache: 8 objects, 59 hits, 12 misses

JMX怎么样?

Ehcache可以轻松地将缓存管理器注册到MBean服务器。它可以用Java代码完成。更新您的Guice模块,将cacheManager注册到系统MBeanServer:

MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();

ManagementService.registerMBeans(cacheManager, mBeanServer, false, false, false, true);

现在,您可以将JConsole附加到Java进程,并在MBean net.sf.ehcache.CacheStatistics中查找缓存统计信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值