EHCache如何检查缓存中是否存在某些内容?

Mar*_*rco 9 java spring caching ehcache

有没有办法检查对象是否在EHCache托管缓存中?

我面临的挑战是我已经实现了一个从数据库中检索单个值的方法(一个find(key)方法).EHCache很好地缓存了find方法的结果,但是现在我想减少多次调用该方法导致的sql查询数.

所以实现这个我们实现了一个新的方法,因为参数需要一个键列表,但由于每个方法调用的参数不同,EHCache在缓存结果方面做得不好.EHCache使用方法参数作为缓存的入口点.

所以我想重新设计一些东西.我的想法是,我在查找(键列表)方法中获取参数,执行一个大型的SQL查询,然后将结果填入缓存中,我没有把头包裹起来,但是在写下来后感觉就像手动修改缓存是不行的..

任何见解或提示都表示赞赏!

jta*_*orn 5

也许isKeyInCache

  • 我认为检查缓存中是否有东西有什么问题。请注意,根据缓存的配置方式,某些内容可能前一分钟还在缓存中,下一分钟就消失了。 (3认同)
  • 请注意,isKeyInCache 将导致运行过期逻辑。该键可能会被列为存在,但在该方法返回后,该条目将使该条目过期,并且缓存将不再包含该元素。不久前我就被这个问题困扰了。 (2认同)