使用 erlang riak 客户端从 Riak 获取所有对象

Getting all objects from Riak using erlang riak client

假设我有 "User" 个存储桶。 我想从中获取所有用户或至少 10 个。

据我了解riakc_pb_socket:get/3

第一个参数是PID,第二个是bucket,第三个是Key。

获取所有对象的一种方法是获取所有键,然后遍历它们,但据我所知,这是一种低效的方法。

还有其他方法吗?

您应该阅读有关 Riak 搜索和(可能)二级索引的文档:

https://docs.basho.com/riak/kv/2.1.4/developing/usage/search/

http://docs.basho.com/riak/kv/2.1.4/developing/usage/secondary-indexes/

如果您需要检索多个用户并且可以预先计算 "top 10" 列表,您可以将这 10 个用户的 ID 作为一个单独的对象存储在 Riak 中。然后,获取那个 "top 10" 对象,并并行获取 10 个用户对象。通常,与上述任何一种方法相比,这肯定会更快。