问题:google guava 本地缓存怎么查看
有没有像redis一样的客户端或者通过命令查看?
思路:本地缓存在jvm中
- 不会有客户端工具,除非自己暴露出去api出去。
- 没有持久化的话,磁盘文件是找不到的。
- 那就是用jvm工具,windows下有jvisualvm。
难点:怎么找到具体类?
通过生成特殊数量的对象实例,按实例数量降序,很快就可以定位到实际的类名。
for (int i=0; i<100; i++) {
cache.put(key+"_"+i, value);
}
一、操作过程,以jvisualvm为例子:
- 打开jvisualvm.exe(位置:JAVA_HOME/bin)下:

打开visualVM
- 选择自己的应用程序:

选择应用
- 抽样器 -> 内存 -> 实例数 -> 降序 -> 100

定位要找的类名: com.google.common.cache.LocalCache$StrongAccessEntry
- 抽样器 -> 内存 -> 堆Dump -> 类 -> 类名过滤器(com.google.common.cache.LocalCache$StrongAccessEntry) -> 选中双击进行查看

锁定目标类

查看值