【问题标题】:Java memoize/cache with persistence, and source code as cache keyJava memoize/cache 持久化,源代码作为缓存键
【发布时间】:2013-12-05 01:33:41
【问题描述】:

我正在寻找一种通用的记忆器,它可以通过简单地在方法定义上方添加一个注释/装饰器来应用于任何方法。例如,Spring 框架提供了@Cacheable。 http://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/cache.html

不过,我还需要以下功能:

  1. 缓存应该保留在磁盘上,这样当我再次运行代码时就不必重新计算值
  2. 缓存键应该是方法源代码的一个函数,这样如果我在运行之间更改我的代码,memoizer 不会错误地重新加载旧结果

在 Python 中,Joblib 是一个提供此功能的流水线工具。是否有可能让 Spring 的 @Cacheable 做到这一点?还是更轻的方式?

如果这会触发任何人的记忆,这里列出了一些看起来可能会有所帮助的工具。我无法对所有这些进行深入调查。

  • Guava 的缓存库
  • 方面J
  • Ehcache(看来这超出了我的需要)
  • javax.cache
  • Java 缓存系统
  • 流水线系统:pipe4j、Apache Commons Pipeline
  • Tek271 Memoizer(文档不多)

【问题讨论】:

    标签: java spring caching persistent memoization


    【解决方案1】:

    我建议查看imcache。您可以使用@Cacheable,imcache 将通过 EvictionListener 将被驱逐的值保存到磁盘。

    【讨论】:

      猜你喜欢
      • 2021-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-21
      • 1970-01-01
      • 1970-01-01
      • 2017-11-28
      相关资源
      最近更新 更多