1

我在我的 ehCache 中添加了以下键。

cache.put(new Element("MyKey1", List1));
cache.put(new Element("MyKey2", List1));
cache.put(new Element("MyKey3", List1));
cache.put(new Element("MyKey4", List1));

现在我想一次将它们全部删除。但我想在密钥前缀“MyKey”的帮助下做到这一点。

更新:

我设法通过以下方式做到了这一点 -

public static void clearStartWith(String key){
      Ehcache cache = getCache(AC.CACHE_NAME);
      Query query;
      Results results;
      query = cache.createQuery();
      query.includeKeys();
      query.addCriteria(Query.KEY.ilike(key+"*")).end();
      results = query.execute();
      for (Result result : results.all()) {
          cache.remove(result.getKey());
      } 
}

但问题是持久化策略——localTempSwap 不支持这个特性。再次使用“localRestartable”我需要一个企业版。所以我需要使用“无”持久性策略。

4

0 回答 0