如何解决更新文档后如何使Couchbase缓存无效
我正在将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();
}
我的配置:
spring.cache.cache-names=Configuration_
spring.cache.couchbase.expiration=10s
我的文档:
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;
}
我的依赖性:
<dependency>
<groupId>com.couchbase.client</groupId>
<artifactId>couchbase-spring-cache</artifactId>
<version>2.1.0</version>
</dependency>
您能否建议一种在存储桶中更新文档后使缓存无效的方法?
解决方法
当更改或删除以前缓存的项目时,您需要使用@CacheEvict逐出。
@CacheEvict(cacheNames="books",allEntries=true)
public void loadBooks(InputStream batch)
此过程对于从服务器中删除陈旧或未使用的数据很有用。 缓存。与@Cacheable相反,@ CacheEvict区分了 执行缓存驱逐(即,用作触发 从缓存中删除数据)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。