我在Aerospike数据库中有命名空间:测试和设置:用户。我通过控制台上的以下命令在用户中添加了四条记录:
ascli put test users barberakey '{"username":"Barbera","password":"barbera","gender":"f","region":"west","company":"Audi"}'
通过aql命令,我可以查看这四个记录。 AQL>从test.users中选择*。
我知道逐个获取记录的方法,它在我身边运行正常,但对我的任务来说这是非常昂贵的操作。我想读取多个记录(批量读取)并对它们执行多种算法。我从https://www.aerospike.com/docs/client/java/usage/kvs/batch.html接受了指导并编写了如下代码:
Key [] keys = new Key [4];
for (int i = 0; i < 4; i++) {
keys[i] = new Key("test", "users", (i + 1));
System.out.println("Keys: "+keys[i]);
}
Record[] records = client.get(batchPolicy, keys);
System.out.println("Length of Records : "+records.length);
for(int a=0;a<records.length;a++){
System.out.println("RECORDS IN ARRAY: "+records[a]);
}
但是,问题是它读取键但是将Array记录设为null。
Output:
Reading records from Aerospike DB
Keys: test:users:1:3921e84015258aed3b93d7ef5770cd27b9bb4167
Keys: test:users:2:1effb3ce25b23f92c5371dee0ac8e6b34f5703c6
Keys: test:users:3:d17519d72e22beab2c3fa1552910ea3380c262bd
Keys: test:users:4:3f09a505c913db8ad1118e20b78c5bb8495fb0f9
Length of Records : 4
RECORDS IN ARRAY: null
RECORDS IN ARRAY: null
RECORDS IN ARRAY: null
RECORDS IN ARRAY: null
请指导我这个案子。
...
答案 0 :(得分:2)
看起来您使用键&#34; barberakey&#34;编写了记录。然后用整数键&#34; i + 1&#34;读取记录。因此,找不到记录。