You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache Ignite 2.15.0:ignitevisor.sh cache命令的替代方案咨询

Apache Ignite 2.15.0 查看缓存列表及元素数量方法

一、使用control.sh工具

ignitevisor.sh被弃用后,control.sh提供了对应的缓存操作命令,需分步骤执行:

  • 查看所有缓存列表:执行以下命令
    ./control.sh --cache list
    
  • 查看单个缓存的元素数量:指定缓存名称执行
    ./control.sh --cache size <缓存名称>
    
  • 批量获取所有缓存大小:结合Shell脚本遍历缓存列表,一次性输出所有缓存的大小,示例脚本:
    #!/bin/bash
    CACHES=$(./control.sh --cache list | grep -v "Cache names:" | tr -d ' ')
    for CACHE in $CACHES; do
        SIZE=$(./control.sh --cache size $CACHE)
        echo "缓存 $CACHE 的元素数量:$SIZE"
    done
    

关于control.sh的反射警告

你遇到的非法反射访问警告,是因为Ignite 2.15.0在Java 9及以上版本运行时,内部反射操作触发了Java模块系统的限制,该警告不影响功能正常使用。若要消除警告,可修改control.sh脚本,在IGNITE_JVM_OPTS中添加以下参数:

IGNITE_JVM_OPTS="$IGNITE_JVM_OPTS --add-opens java.base/java.nio=ALL-UNNAMED"

二、使用REST API

如果集群开启了REST服务(默认端口8080),可通过HTTP请求获取缓存信息:

  • 获取缓存列表:
    curl "http://<节点IP>:8080/ignite?cmd=getcaches"
    
  • 获取单个缓存大小:
    curl "http://<节点IP>:8080/ignite?cmd=cachesize&cacheName=<缓存名称>"
    

注意:Docker部署时需确保容器8080端口已映射到宿主机。

三、通过代码或Web Console

  • Java代码方式:编写客户端代码连接集群,遍历缓存并统计大小:
    import org.apache.ignite.Ignite;
    import org.apache.ignite.Ignition;
    
    public class CacheSizeChecker {
        public static void main(String[] args) {
            try (Ignite ignite = Ignition.start()) {
                ignite.cacheNames().forEach(cacheName -> {
                    long size = ignite.cache(cacheName).size();
                    System.out.println("缓存 " + cacheName + " 的元素数量:" + size);
                });
            }
        }
    }
    
  • Ignite Web Console:若部署了Web Console,可通过可视化界面直接查看所有缓存的基本信息及元素数量。

内容的提问来源于stack exchange,提问作者BHBV

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 01:17:25