如何使用riak-java-client列出存储桶中的所有密钥

时间:2014-08-15 08:20:38

标签: scala riak

关于如何使用riak列出存储桶密钥的相当简单的问题我正在使用 java-riak-client v1.1.4 Riak 1.3.2 ,很少有这样做的方式,我知道:

- >虽然已弃用,

val riak = new RiakClient("http://localhost:8098/riak");
val r = riak.listBucket("bucket");
if (r.isSuccess()) {
    val info = r.getBucketInfo();
    val keys = info.getKeys();         // list of all object keys in this bucket
}

- >使用map reduce来获取存储桶中的所有记录,但由于某种原因,执行map-reduce实际上会导致一些Riak错误,请参阅Error,尽管错误实际上并不是因为map-reduce引起的。我的代码是下面给出了使用方法,但问题是这段代码只在两个存储桶的情况下产生错误,使用map reduce检索所有使用map的工作正常适用于其他存储桶。

val riakClient = RiakFactory.httpClient
val result = riakClient.mapReduce(BUCKET_NAME_USER)
        .addMapPhase(new NamedJSFunction("Riak.mapValuesJson"), true)
        .execute //Gives errors

现在是否有另一种使用java-riak-client检索存储桶内容的方法,或者至少如何列出存储桶键?

1 个答案:

答案 0 :(得分:0)

这是一个相当古老的线程..但无论如何。这不是诀窍吗?

BucketResponse bucketResponse =  riak.listBucket("bucket");
Collection<String> keys = bucketResponse.getBucketInfo().getKeys();

您可以在http://basho.github.io/riak-java-client/1.1.4/index.html

中关注 RiakClient