NodeJS 当我们只能在程序中使用变量时,在内存数据库中使用变量有什么意义呢?

qf9go6mv  于 2023-06-22  发布在  Node.js
关注(0)|答案(2)|浏览(144)

我正在开发我的第一个大型项目,并实际上试图使其可扩展和可行。我想知道为什么人们会使用内存数据库而不是使用变量,这一直困扰着我。
我试着在网上找,但我真的找不到一个明确的答案。

g6ll5ycj

g6ll5ycj1#

内存数据库(如Redis)作为独立服务器的一些优点:

  • 数据可以被多个服务器访问。如果您正在使用集群进行水平扩展,则此功能特别有用。因此,无论传入请求路由到哪个集群服务器,都可以使用会话数据之类的东西。
  • 数据可以在Web服务器重新启动或崩溃时持续存在(因为数据不在Web服务器中)。
  • 将大量数据存储在内存数据库中可能比存储在nodej中更实用或更有效。
  • 可以制作数据的快照以便持久化。
  • 可以使用内存中数据库的并发特性来防止争用条件
  • 可以在失败情况下提供更好的数据完整性(使用事务)。
  • 内存存储可以为具有复制的数据提供容错。
  • 类似数据库的功能为您提供了一些数据管理工具,这些工具可能不适用于程序变量,因此对于复杂的数据,您必须在代码中发明这些工具,或者在代码中添加一些其他工具来获得此功能。

另一方面,如果以上几点都不相关或不需要,那么在更简单的实现中可以很好地使用服务器进程中的内存数据。

x33g5p2x

x33g5p2x2#

Node.js中的内存数据库服务于特定目的,并在某些情况下提供优于使用程序内变量的优势。以下是您可能考虑使用内存数据库的几个原因:
1.持久性:内存数据库提供跨程序执行的持久性。当Node.js应用程序终止时,程序内变量会丢失,您需要在重新启动应用程序时重新初始化它们。内存数据库允许您存储即使在应用程序重新启动后仍可用的数据。
1.数据管理:内存数据库提供结构化数据管理功能。它们提供了索引、查询和事务支持等功能,这些功能对于有效处理复杂的数据操作至关重要。仅在程序内变量中管理大量数据可能会变得很麻烦,并且可能需要您构建自定义数据管理功能。
1.可扩展性:内存数据库可以比仅仅依赖程序内变量更有效地处理大型数据集。它们旨在优化内存使用和访问模式,允许您有效地存储和查询大量数据。相比之下,如果将所有数据存储在程序变量中,则内存约束可能成为限制因素,特别是在处理大量数据时。
1.共享访问:内存数据库允许应用程序的多个部分并发地访问和操作数据。这在有多个线程或进程同时访问同一数据的情况下特别有用。程序内变量通常仅限于Node.js应用程序的单个示例,并且不提供用于共享访问控制的内置机制。
1.集成:内存数据库通常提供标准协议和API,使其更容易与其他工具和系统集成。当您需要将Node.js应用程序与外部服务连接,执行备份或与其他数据库同步数据时,这可能是有益的。
也就是说,使用程序内变量适用于小型、 transient 数据集或具有最低数据管理要求的简单应用程序。这完全取决于您的项目的具体需求和限制。

相关问题