在Aerospike中读取多个记录时获取空记录

时间:2015-07-13 12:00:07

标签: aerospike

我在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

请指导我这个案子。

...

1 个答案:

答案 0 :(得分:2)

看起来您使用键&#34; barberakey&#34;编写了记录。然后用整数键&#34; i + 1&#34;读取记录。因此,找不到记录。