将数据保存在内存中而不是保存在数据库java中

时间:2016-07-09 11:51:49

标签: java node.js database caching memory

我想运行一个java函数,它会生成一个大小约为1M的json。我需要json输入2分钟后的下一个呼叫。我可以将json保存在数据库中,但是花在数据库中的时间用于我是不可接受的。我可以将这些数据保存在内存中并用于下次通话吗?我还需要从node.js读取这些数据。我该怎么做这个工作?

2 个答案:

答案 0 :(得分:2)

为什么不在应用程序和数据库之间使用持久异步队列。通过这种方式,您只需触发并忘记持续操作并尽快提供结果。

如果你想将对象保留在内存中,最好的选择就是Infinispan或Hazelcast。 Infinispan为缓存和良好的数据库集成提供了自己的持久存储。另一端的Hazelcast更像是内存键值存储,但是一些持久性也可以很容易地实现。 Hazel演员很容易入手,学习曲线也不那么陡峭。

这种基础设施的好处在于,您可以确保数据与数据库同步。例如,您可以配置要保留的特定对象的备份数量,这些备份是异步或同步创建的,具体取决于您配置它们的方式。您也可以将数据发送到数据库。如果持久性很强,那么Infinispan在这方面可能会更好。

当我第二次阅读你的帖子时,我意识到在缓存方面你可能需要更简单的东西。如果您只需要一个没有备份功能的本地缓存,那就去EHCache。

答案 1 :(得分:1)

hazelcast是一个Java库,提供API来解决缓存用例。 它扩展了java集合,其功能适用于缓​​存用例 - 逐出,ttl表示条目,读取和写入缓存等。

对于node.js用例,请在https://stackoverflow.com/a/36704734/27563

找到我的答案

如果您有任何问题,请与我们联系。

谢谢