我想在Cache
中存储对象,这些对象使用使用不同对象的键作为公共标识符。将密钥放入缓存或从缓存中查找条目时,这种方法很有效。
但是,有时我想清除某些对象的缓存。然后我只有部分密钥可用。我想删除与该部分密钥匹配的所有条目。是否有一种简单的方法可以清除缓存中的缓存?
答案 0 :(得分:0)
好吧,我使用了Searchable API,它适用于不会溢出到磁盘的缓存。就我而言,显然没有解决方案。我现在构建了自己的缓存,它位于Guava缓存之上,我使用RemovalListener
序列化条目,并检查CacheLoader
中是否存在存储在磁盘上的值。我仍然遇到一些小的问题,因为RemovalListener
未在缓存的密钥上同步。否则,这很好。由于Guava缓存比Ehcaches便宜,这也允许我创建几个实例。当我序列化时,我为每个键区域创建文件,这样如果我需要清理复合键值,我就可以删除整个文件夹。