为了账号安全,请及时绑定邮箱和手机立即绑定

怎么用命令查看tomcat在memcached中的缓存

怎么用命令查看tomcat在memcached中的缓存

江户川乱折腾 2019-05-31 07:02:29
怎么用命令查看tomcat在memcached中的缓存
查看完整描述

2 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

一、查看代码:
使用命令【stats items】查询查询到所有的slab,再使用命令【cachedump 1 0】命令找出所有的Key信息。但过期的key也会被查询出来,所以需要对all keys执行一遍查询,过滤掉过期的key:

Iterator<Map<String, String>> iterSlabs = client.getStats("items").values().iterator();
Set<String> set = new HashSet<String>();
while(iterSlabs.hasNext()) {
Map<String, String> slab = iterSlabs.next();
for(String key : slab.keySet()) {
String index = key.split(":")[1];
set.add(index);
}
}

//统计
List<String> list = new LinkedList<String>();
for(String v : set) {
String commond = "cachedump ".concat(v).concat(" 0");
Iterator<Map<String, String>> iterItems = client.getStats(commond).values().iterator();
while(iterItems.hasNext()) {
Map<String, String> items = iterItems.next();
list.addAll(items.keySet());
}
}

return client.getBulk(list);

二、Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。





查看完整回答
反对 回复 2019-06-01
  • 2 回答
  • 0 关注
  • 479 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信