代码之家  ›  专栏  ›  技术社区  ›  Reza Shirin Nezhad

使用Spring缓存和将数据保存在变量中有什么区别?

  •  1
  • Reza Shirin Nezhad  · 技术社区  · 6 年前

    几天前,我在一个项目中的Spring框架中实现了缓存功能,这很有趣,但现在我想到了这个问题:在应用程序启动时使用Spring缓存和获取或初始化数据,并将其保存在一个Spring bean变量中(可以通过getter访问)有什么区别?

    2 回复  |  直到 6 年前
        1
  •  2
  •   KreÅ¡imir Nesek    6 年前

    如果您只有一个应用程序实例,您不关心任何更复杂的特性(如下所列),并且您正确地同步对变量的访问以供多线程使用,这没有区别。Cache是Cache—您临时存储了一个值,否则计算或获取该值的成本会很高。

    但是,Spring Cache提供了专用缓存子系统(例如EhCache、Redis….)的通用接口。在EhCache中,您可以配置如下内容:

    • 要在缓存中保留多少元素(以限制内存使用)
    • 它管理配置的LRU到期(例如,在满足某些配置的tresholds之后,将从缓存中删除最近使用最少的元素)
    • 您可以选择是否将缓存持久化到磁盘,或将其仅保留在内存中,或两者都保留
    • 您可以从多个应用程序实例访问缓存
    • 等。。。。
        2
  •  2
  •   Max Farsikov    6 年前

    与简单的吸气剂相比,Spring缓存更通用、更灵活、更复杂。它允许使用不同的缓存提供程序,配置缓存失效。。。还有更多。

    如果为了您的需要,只需要一个getter就足够了——您应该使用getter,使您的应用程序尽可能简单。