最近我们开始使用couchbase,我们正在使用java spring-data-couchbase 和Jersey 来访问couchbase。访问低级 java-sdk-api 我们使用 KEY(id) 为特定文档设置过期时间 (TTL)。它工作正常。代码如下。
// define couchbaseTemplate for lower-level access to Java SDK
@Autowired
CouchbaseTemplate couchbaseTemplate;
// setExpiry method update expiry given a doc ID
@Override
public void setExpiry(String key, int expN) throws RepositoryException {
couchbaseTemplate.getCouchbaseClient().touch(key, expN);
}
我们面临的问题是当我们尝试使用查询获取文档列表时,该列表包含过期的文档。当我们尝试访问列表中的文档时,我们发现它为空。
但是如果我们在一段时间后执行查询,过期文档不再包含在列表中。
例子:当expN=10秒,我们设置TTL后10秒左右执行查询,过期文档包含如果我们设置TTL后20秒左右执行查询,过期文档不再包含
在我们设置的陈旧选项中
Query.setStale(Stale.false)
我们试图操纵
Query.setIncludeDocs
但没有运气,任何帮助....