node.js全局数组与redis

node.js global array vs redis

本文关键字:redis 数组 全局 js node      更新时间:2023-09-26

我正在构建一个node.js应用程序,每个操作都需要查找一组属性(它们与权限相关)。我使用mysql数据库作为我的持久存储。我最初打算使用redis来存储这些属性,因为它们不会发生太大变化,因此可以在应用程序启动时从mysql数据库加载,如果它们发生变化,则可以刷新。重点是,我需要查找尽可能快,因为这种情况经常发生,但数据不需要持久化,所以使用redis而不是mysql。

当我今天思考这个问题时,我突然想到,我可能可以使用全局关联数组来存储这些数据。我总是用同一个键查找,并总是得到完整的属性列表。我认为,当我在服务器上启动应用程序时,它可以将数据加载到一个数组中,该数组连接到节点中的"全局"对象,而不是将其粘贴到redis中,这样我就可以降低应用程序堆栈的复杂性。另外,我假设javascript数组的查找速度也会更快,因为它的开销更少。

我是不是错过了什么?redis或节点中的全局对象的工作方式是否会使前者更快?我预计最有可能的情况是100把钥匙,但有时我可能会有10000把。不过,从总体来看,这似乎还不算太大。

将数据存储在全局对象中肯定会更快,因为没有网络开销、解析开销等。(在您的场景中)唯一的问题是,由于每个进程中都有一个副本,因此会占用更多内存。如果这不是问题,那就去做吧。