需要良好的设计模式来缓存数据库查询结果集

bet*_*oys 5 java sql java-ee

我是构建Java Web应用程序的团队的一员,用户将在关系数据库中搜索结果,然后在浏览器中以表格形式查看它们.然后,用户还可以选择在单独的浏览器窗口中查看相同的结果集(或这些结果的子集),例如使用图表工具.换句话说,我们需要让用户能够在以后可视化相同的结果集记录(最多24小时).

由于对系统的搜索将是资源密集型且仅仅是出于良好的常识,我们希望以一种干净的方式来缓存每个结果集,以便稍后可以从内存(RAM或磁盘)中提取它. 我们正在寻找一种很好的方法来实现这种缓存,我们相信其他人之前已经这样做了,我们更喜欢使用最佳实践或框架,而不是从头开始构建这样的东西.服务器将有足够的RAM,但由于可能有数百人使用该系统,我们可能需要一种先存储到RAM的方法,但如果RAM已满,也可以缓存到硬盘.

我认为坚持作为Java对象是最有意义的,但我愿意接受更好的建议.我们希望采用与供应商无关的方法,因此如果数据库团队选择稍后切换供应商,我们就不会使用专有解决方案.谢谢.

MK.*_*MK. 1

我见过http://www.jboss.org/infinispan/曾经这样做过。它可以缓存到内存、磁盘和/或数据库。我不会说我喜欢它(配置不是超级简单,文档也有些缺乏),但它肯定可以工作并且得到积极维护。