Aerospike:计算命名空间中的所有对象?

Aerospike: count all objects in a namespace?

所以我一直在浏览 Aerospike 的文档,但我仍然不明白如何通过 Java 获取名称-space 中主(未复制)记录的数量API(不是 AQL)..有帮助吗?

我在本地主机上的服务器 运行 上尝试了此操作,端口 3000。您可以进一步探索信息 class 并使用更好的结构。我在名为 'test'.

的命名空间中有 10,000 个对象
String output = Info.request("127.0.0.1", 3000, "namespace/test");
String[] mp = output.split(";") ; 
console.printf(mp[0]);

我在控制台上得到以下输出:

objects=10000

我重复了一个三节点集群。 10,000 个主对象,复制因子为 2。通过 运行 3 个 aerospike 进程在同一 VM 上创建集群,但将端口分隔为 3000、4000 和 5000。

Java代码(不解析字符串):

console.printf("\nNode at Port 3000\n");
console.printf(Info.request("127.0.0.1", 3000, "namespace/test"));  

console.printf("\nNode at Port 4000\n");
console.printf(Info.request("127.0.0.1", 4000, "namespace/test"));

console.printf("\nNode at Port 5000\n");
console.printf(Info.request("127.0.0.1", 5000, "namespace/test"));

相关输出:

Node at Port 3000
objects=6537;sub_objects=0;master_objects=3286;master_sub_objects=0;prole_objects=3251;prole_sub_objects=0;...
Node at Port 4000
objects=6674;sub_objects=0;master_objects=3294;master_sub_objects=0;prole_objects=3380;prole_sub_objects=0;...
Node at Port 5000
objects=6789;sub_objects=0;master_objects=3420;master_sub_objects=0;prole_objects=3369;prole_sub_objects=0;...

与 asadm 交叉检查

asadm>info

3节点集群,相关输出: