进入数据库之前的Java Cache Data

时间:2012-07-22 03:40:14

标签: java database spring caching redis

我们必须为现有的Web应用程序实现一个监视模块。该应用程序的目的是记录在运行时执行的每个方法所花费的时间并保存到2个监视表。由于应用程序中发生了很多方法调用,我们无法在每次执行方法时保存到表中。我们使用spring aop来拦截时间。我们使用redis来缓存数据,并且每十分钟一次,取数据从缓存和保存在数据库中。但redis似乎是一个麻烦的想法,因为它不断建立新的连接,这给应用程序一个噩梦。有任何替代方法来做到这一点。我们考虑写入文件并从中获取数据该文件定期。但这似乎也是一个消耗资源的解决方案。

1 个答案:

答案 0 :(得分:1)

我建议将所有内容存储在Java应用程序中。如果你想要的只是一些统计数据,你可以在HashMap中跟踪这些信息,并每10分钟从另一个线程写入数据库。最小/最大/平均时间不会占用太多内存,您可以在将数据写入数据库后重置统计数据。

如果因某种原因无法满足您的需求,Redis应该很快,甚至可以帮助您计算统计数据。我设置了一个连接池,以防止它每次都建立新的网络连接。然后,我在Redis客户端中使用异步写入(流水线)来加速写入。 Jedis和JRedis都支持这一点。