Couchbase BulkGet在春季数据沙发基地

时间:2016-04-21 13:41:23

标签: spring-data couchbase

我正在使用Couchbase和Spring Data,并希望实现Couchbase的bulkGet。请让我知道以下内容:

  1. 是否可以通过Spring Data?
    • 如果是,你能分享一个例子吗?
  2. findAll(使用_all视图)在性能方面与bulkGet相当吗?
  3. 我可以在Couchbase文档中获取_id吗?
  4. 环境: - Couchbase 4.0,Spring Data 2.0.0.RELEASE,Java 8.

    提前致谢!

1 个答案:

答案 0 :(得分:1)

我假设您在存储库的上下文中询问批量获取。

首先,目前还没有完全支持" bulkGet"在Spring Data Couchbase中。大多数实现都基于SDK同步API,而批量获取通常使用异步 API,使用RxJava完成。

请注意,没有实际的" bulkGet"在Couchbase的协议级别操作,它只是发布多个单Get的SDK并将它们一起批处理。

要回答第二个问题,上述内容非常重要。 Couchbase Java SDK文档(此处)中讨论的批量获取模式略微提升了性能,因为与同步模式不同,我们不会等待检索一个项目以获得下一个项目。

Spring Data Couchbase中的findAll()findAll(Iterable)方法都在view之上运行,它只允许检索与您的存储库的实体类型匹配的文档但引入了一个级别与纯键/值序列相比可以降低性能的间接性。

因此,与Spring Data Couchbase中的批量操作最接近的是知道您感兴趣的所有ID ,然后执行{{1每个ID

在短期内,可以通过在所有提供的ID上应用批量获取模式来改进findOne签名背后的代码,但这意味着忘记视图引起的类型检查,所以我&# 39;我不确定......