node.js 全局数组 vs redis
node.js global array vs redis
我正在构建一个 node.js 应用程序并且有一组我需要在每个操作中查找的属性(它们与权限相关联)。我正在使用 mysql 数据库作为我的持久存储。我最初打算使用 redis 来存储这些属性,因为它们不会发生太大变化,因此可以在应用程序启动时从 mysql 数据库加载并在它们发生变化时刷新。关键是我需要尽可能快的查找,因为它经常发生,但数据不需要持久化,所以 redis 而不是 mysql.
当我今天考虑这个问题时,我突然想到我可以使用全局关联数组来存储这些数据。我总是会用同一个键查找东西,并总是得到完整的属性列表。我认为当我在服务器上启动应用程序时,它可以将数据加载到附加到节点中 "global" 对象的数组中,而不是将其粘贴到 redis 中,这样我就可以降低应用程序堆栈的复杂性。另外,我假设 javascript 数组的查找速度也会更快,因为它的开销较小。
我错过了什么吗? redis 或节点中的全局对象的工作方式是否会使前者更快?我预计最有可能的情况是 100 把钥匙,但也可能有 10000 把钥匙。不过,从宏伟的计划来看,这似乎还不算太大。
将数据存储在全局对象中肯定会更快,因为没有网络开销、解析开销等。唯一的问题(在您的场景中)是它将占用更多内存,因为您将拥有一个副本在每个过程中。如果这不是问题,那就去做吧。
我正在构建一个 node.js 应用程序并且有一组我需要在每个操作中查找的属性(它们与权限相关联)。我正在使用 mysql 数据库作为我的持久存储。我最初打算使用 redis 来存储这些属性,因为它们不会发生太大变化,因此可以在应用程序启动时从 mysql 数据库加载并在它们发生变化时刷新。关键是我需要尽可能快的查找,因为它经常发生,但数据不需要持久化,所以 redis 而不是 mysql.
当我今天考虑这个问题时,我突然想到我可以使用全局关联数组来存储这些数据。我总是会用同一个键查找东西,并总是得到完整的属性列表。我认为当我在服务器上启动应用程序时,它可以将数据加载到附加到节点中 "global" 对象的数组中,而不是将其粘贴到 redis 中,这样我就可以降低应用程序堆栈的复杂性。另外,我假设 javascript 数组的查找速度也会更快,因为它的开销较小。
我错过了什么吗? redis 或节点中的全局对象的工作方式是否会使前者更快?我预计最有可能的情况是 100 把钥匙,但也可能有 10000 把钥匙。不过,从宏伟的计划来看,这似乎还不算太大。
将数据存储在全局对象中肯定会更快,因为没有网络开销、解析开销等。唯一的问题(在您的场景中)是它将占用更多内存,因为您将拥有一个副本在每个过程中。如果这不是问题,那就去做吧。