更新文档后如何使 Couchbase 缓存失效
How to invalidate Couchbase cache after update document
我正在使用 Couchbase 作为 spring 启动应用程序的缓存。
但在更新我的文档后,我应该等待缓存过期才能刷新。所以基本上删除或更新任何文档都不会使其失效。
这是我的 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)
This process is useful for removing stale or unused data from the
cache. As opposed to @Cacheable, @CacheEvict demarcates methods that
perform cache eviction (that is, methods that act as triggers for
removing data from the cache).
我正在使用 Couchbase 作为 spring 启动应用程序的缓存。 但在更新我的文档后,我应该等待缓存过期才能刷新。所以基本上删除或更新任何文档都不会使其失效。
这是我的 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)
This process is useful for removing stale or unused data from the cache. As opposed to @Cacheable, @CacheEvict demarcates methods that perform cache eviction (that is, methods that act as triggers for removing data from the cache).