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

时间:2017-02-19 09:59:44

标签: aerospike

所以我一直在浏览Aerospike的文档,我仍然无法理解如何通过Java API(不是AQL)在名称空间中获取主(未复制)记录的数量)..任何帮助?

2 个答案:

答案 0 :(得分:3)

我尝试使用在localhost,端口3000上运行的服务器。您可以进一步探索Info类并使用更好的结构。我在命名空间中有10,000个对象,名为' test'。

String output = Info.request("127.0.0.1", 3000, "namespace/test");
String[] mp = output.split(";") ; 
console.printf(mp[0]);

我的控制台上输出了以下内容:

objects=10000

答案 1 :(得分:2)

我重复了一个三节点集群。 10,000个主对象,复制因子为2.通过在同一个VM上运行3个aerospike进程创建集群,但将端口分别为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节点集群,相关输出: enter image description here