您可以做的是清除并立即重新缓存您的
时间缓存
e、 g.您的
clearCache
@CacheEvict(value = "timeCache", allEntries = true, beforeInvocation = true)
@Cacheable("timeCache")
public Map<String, RechargeMatrix> clearAndRecache() {
// retrieve your timeCache values as in getValues() method
}
您可以在示例项目中查看这一点
here
. 本示例基于
Memcached Spring Boot library
.
如果你需要
钥匙
参数如中所示
clearCache(字符串键)
要删除数据库中的数据,代码应该如下所示:
@CacheEvict(value = "timeCache", allEntries = true, beforeInvocation = true)
@Cacheable(value = "timeCache", key = "T(org.springframework.cache.interceptor.SimpleKey).EMPTY")
public Map<String, RechargeMatrix> deleteAndRecache(String key) {
// 1. delete data in DB by key parameter
// 2. retrieve your timeCache values as in getValues() method and return it
}
这一切的原因是
getValues()
方法将数据缓存在memcached中,其中键具有值
SimpleKey.EMPTY
. 因此,此方法中返回的映射应该具有相同的键值。