【问题标题】:Caching a resultset缓存结果集
【发布时间】:2011-01-06 03:51:58
【问题描述】:

我的应用程序将使用数据源 bean 从 MySql 中检索县列表。由于每次我可以将国家列表存储为某个全局 bean 中的列表时,所有页面都可能使用相同的记录集,在这种情况下是安全的。我可以随时刷新列表...但是当事情变得更复杂时,最好的策略是什么,更具可扩展性的解决方案?

使用内存数据库? 第三部分缓存的结果集?

没有找到,可能是因为我对这个主题不熟悉。

【问题讨论】:

  • “更复杂”是什么意思? “随时刷新”是什么意思?是否每次外部都会更改数据?

标签: spring caching jdbc jakarta-ee scalability


【解决方案1】:

ResultSet 绑定到数据库连接,它是一个相当短暂的构造,不适合缓存。

我建议使用EhCache 来缓存您的结果。它是一种内存缓存机制(具有溢出到磁盘的选项,以及跨集群分布的选项)。它与 Spring 完美集成(通过 EhCacheManagerFactoryBeanEhCacheFactoryBean)。

【讨论】:

  • 测试的时间不多,但我会试一试!刚刚看了一篇解释其基础的小文章,但是基础需要一点准备。无论如何,它说是可扩展的,就像你说的那样与春天很相配。谢谢!
【解决方案2】:

如果国家/地区列表几乎从不更新,请在应用程序启动时填写FastMap,地图键为two letter country abbreviations,值是您要为每个国家/地区存储的其他信息。否则,请使用内存中的数据库缓存,例如 EhCache 和 Memcached。

【讨论】:

    【解决方案3】:

    使用CachedRowSet。可以将其视为ResultSet,但不需要维护与数据库的连接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-20
      • 2017-07-03
      • 2021-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多