Spring boot 更新文档后如何使Couchbase缓存无效

Spring boot 更新文档后如何使Couchbase缓存无效,spring-boot,couchbase,spring-data-couchbase,Spring Boot,Couchbase,Spring Data Couchbase,我使用Couchbase作为spring boot应用程序的缓存。 但在更新文档之后,我应该等待缓存过期,以便刷新。因此,基本上删除或更新任何文档都不会使其无效 这是我的spring数据存储库: public interface ConfigurationRepository extends CouchbaseRepository<Configuration, String> { @Query("#{#n1ql.selectEntity} WHERE #{#n1q

我使用Couchbase作为spring boot应用程序的缓存。 但在更新文档之后,我应该等待缓存过期,以便刷新。因此,基本上删除或更新任何文档都不会使其无效

这是我的spring数据存储库:

public interface ConfigurationRepository extends CouchbaseRepository<Configuration, String> {

    @Query("#{#n1ql.selectEntity} WHERE #{#n1ql.filter}")
    @Cacheable(value = "Configuration_", unless = "#result == null")
    Optional<Configuration> getConfiguration();
}
我的文件:

public class Configuration implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    private String id = UUID.randomUUID().toString();

    public List<ConfigElement> properties;

    @Version
    private long version;
}
公共类配置实现可序列化{
私有静态最终长serialVersionUID=1L;
@身份证
私有字符串id=UUID.randomUUID().toString();
公共财产清单;
@版本
私人长版;
}
我的依赖:

    <dependency>
        <groupId>com.couchbase.client</groupId>
        <artifactId>couchbase-spring-cache</artifactId>
        <version>2.1.0</version>
    </dependency>

com.couchbase.client
couchbase弹簧缓存
2.1.0

更新存储桶中的文档后,是否可以建议一种使缓存无效的方法?

您需要使用@cacheexecute在更改或删除以前缓存的项目时将其逐出

@CacheEvict(cacheNames="books", allEntries=true) 
public void loadBooks(InputStream batch)

此过程对于从数据库中删除过时或未使用的数据非常有用 隐藏物与@Cacheable相反,@cacheexecute定义了 执行缓存逐出(即充当 正在从缓存中删除数据)


有关更新方法中的更多详细信息,请参见

put
cacheexecute
,有关更多信息,请参见此谢谢@gtiwari333我会尝试一下并告诉您结果谢谢@gtiwari333您的提议完成了任务,您可以回答,我会验证并投票赞成
@CacheEvict(cacheNames="books", allEntries=true) 
public void loadBooks(InputStream batch)