在哪里存储一致的JSON,Redis或全局变量?

时间:2018-01-16 09:51:26

标签: node.js performance memory-management redis

我一直在使用节点作为我的应用程序,我想知道全局变量或局部变量存储在哪里? (在RAM或CPU缓存中可能。猜测RAM。对吗?)并且最好将一些静态的JSON存储为全局变量并立即访问它们。

它会比像Redis这样的内存数据库读取更快吗?

例如,让我们看一下像网站类别列表这样的东西,它是一个带有一些节点的JSON。

大多数情况下,这个JSON是常量,即使它被更改,我也可以使用新值刷新变量,因为一个服务器应用程序处理所有请求。

当节点应用程序启动时,我可以使用此初始化程序函数从磁盘数据库中读取JSON。

目前我正在使用Redis来应对这种情况,当应用程序启动时,我正在从mySQL中读取这个JSON并将其保存在redis中以便更快地处理请求。

但是我想知道将JSON保持为全局变量是一种很好的做法,如何将它与Redis性能明智地进行比较呢?

P:我知道redis具有一致性并且在磁盘中保持价值但是我从mySQL读取它们因为redis是架构的一小部分的缓存机制,并且如果需要,使用初始化器给我一个手动同步。

由于

2 个答案:

答案 0 :(得分:0)

您可以将它保存在任何您想要的位置。您可以将它们存储为文件,并在启动应用程序时需要它们。如果他们不改变,我会更喜欢这个。

如果您更新它们,那么您可以使用任何数据库或缓存机制并阅读它们。它取决于你。

是的,变量存储在内存中。如果应用程序崩溃,他们将不会坚持下去。因此建议使用持久存储。

答案 1 :(得分:0)

我更喜欢Redis。因为即使您重新启动节点应用程序数据也会存在,并且将全局变量放入内存有一个缺点,即在运行时如果您希望更改它们,您可以选择重新启动整个应用程序。

另外,在运行应用程序时,您应始终查询Redis以便随时获取数据。如果您希望这些值是动态的,将在Redis中直接反映它。