如何从 Java 代码中刷新 Couchbase 桶?

How to flush Couchbase bucket from Java code?

每次单元测试运行之前,我都需要清除 Couchbase 存储桶。我使用的是 Java SDK > 2.0 版本。在以前的版本中我发现了这个绝妙的方法http://www.couchbase.com/autodocs/couchbase-java-client-1.1.1/com/couchbase/client/ClusterManager.html#flushBucket(java.lang.String),但在新版本中没有。

有什么方法可以清除存储桶中的数据吗?我可以通过获取文档的所有键然后将它们全部删除来删除,但我想使用更漂亮的方式。

您可以使用 REST API 删除存储桶: http://docs.couchbase.com/admin/admin/REST/rest-bucket-intro.html

Couchbase Java 2.x SDK API Reference look at BucketFlusher.

实际上,在 2.x SDK 中,您可以从 Bucket 实例中获取 BucketManager,这样您就可以像以前一样出色地调用 flush() ;)

请注意,之后在 Community v4.0 中刷新和使用 N1QL 查询可能存在风险。我的集成测试失败了,因为一些文档在运行几十次后(甚至在 30 分钟后)没有被索引。只删除文档更安全。