我有一个要求,我必须从特定缓存中删除一个密钥,该密钥以某个值开头,例如xyz
。
实际密钥可以是xyz12345
,xyzehrek
,xyz5eei7
等。
我使用Spring注释从特定缓存中删除一个值。我不想从缓存中删除所有内容,只删除以xyz
开头的密钥对象。
@CacheEvict(value="someCache", key="#keyStartsWith")
public void removeValueFromCache(String keyStartsWith) {
}
我试图在密钥中传递"^#keyStartsWith"
。但它不起作用。
答案 0 :(得分:0)
我知道这样做的一种hackish方式。
首先,在您将代码存储到缓存中的代码中,创建一个专门存储密钥的arraylist。
ArrayList<String> keys
现在,当你想要删除匹配说&#34; xyz&#34;的密钥时,你可以做的是
for (String key : keys)
if (key.contains("xyz")
cache.remove(key);
希望这有帮助!