猿问

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

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


江户川乱折腾
浏览 480回答 2
2回答

aluckdog

一、查看代码:使用命令【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应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。
随时随地看视频慕课网APP
我要回答