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