Redis 与 Javascript 个对象。 Redis 在这种情况下有什么优势?

Redis vs Javascript objects. What advantages does Redis offer in this case?

我的节点服务器以嵌套数组的形式收集数据,大约每分钟一次。数据看起来像这样 [[8850, 3.1, '2009jckdsfj'], ..., [8849.99, 25.3, '8sdcach83']]

这些数组中大约有 2000 个需要缓存。持久性并不重要,因为我经常更新它。

使用 redis 似乎 "thing to do," 但是我看不到好处。使用 javascript 对象,我不需要对数组进行字符串化和解析来存储和使用它们。

在这种情况下,redis 有什么优势?

以下是使用 Redis 的一些原因:

  1. 多个进程可以访问数据。它在一个单独的进程中运行并且有一个联网的API所以多个进程可以访问数据。例如,如果您正在使用集群并希望所有集群实例都可以访问相同的数据,则需要使用一些外部数据库(例如 Redis)。

  2. 内存使用与 node.js 分开。 它在单独的进程中运行,因此其内存使用与 node.js 分开。如果您要存储大量数据,redis 可能会比 node.js 更好地处理大量内存使用,或者您最好在两个进程之间分配使用量而不是全部使用 node.js.

  3. Redis 提供不属于标准 Javascript. 的功能,包括 pub/sub、数据查询、事务、过期键(适用于会话等即将过期的数据)、键的 LRU 老化(适用于有界缓存)、未内置于 Javascript 中的数据结构,例如排序集、位图等……仅举几例.

  4. Redundancy/replication/high 可用性。 如果您的数据不需要长期保存在磁盘上,但确实需要稳健,您可以希望数据保护免受任何单个服务器故障的影响。您可以将数据复制到多个 redis 服务器,从而进行故障转移、备份,而不会增加持久化到磁盘的性能拖累。

这就是说,没有理由使用 Redis,因为它是“要做的事”。只有当你发现你遇到的问题比只使用 node.js.

中的对象存储更好地解决时才使用 redis

仅供参考,redis 站点提供了一系列关于与 redis 相关的各种事物的白皮书。这些白皮书也可能是进一步信息的良好来源。