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

标签 javascript node.js caching redis memcached

我的 Node 服务器以嵌套数组的形式收集数据,大约每分钟一次。数据如下所示 [[8850, 3.1, '2009jckdsfj'], ..., [8849.99, 25.3, '8sdcach83']]

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

使用 Redis 似乎是“要做的事”,但我看不到它的好处。使用 javascript 对象,我不需要对数组进行字符串化和解析来存储和使用它们。

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

最佳答案

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

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

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

  3. Redis 提供不属于标准 Javascript 的功能。这些功能包括发布/订阅、数据查询、交易、过期键(非常适合 session 等即将过期的数据)、键的 LRU 老化(有界缓存的理想选择)、未内置到 Javascript 中的数据结构,例如排序集、位图等……仅举几例。

  4. 冗余/复制/高可用性。如果您的数据不需要长期保存在磁盘上,但确实需要稳健,您可能需要数据保护以防止发生故障任何单个服务器。您可以将数据复制到多个 Redis 服务器,从而实现故障转移和备份,而不会增加持久化到磁盘的性能拖累。

这就是说,没有理由使用 Redis,因为它是“要做的事”。只有当你发现你遇到的问题比仅仅使用 node.js 中的对象存储更好地解决时,才使用 redis。

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

关于javascript - Redis 与 Javascript 对象。 Redis 在这种情况下有什么优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50321844/

相关文章:

javascript - NestJS - 注入(inject)的服务在构造函数中未定义

node.js - docker compose up 后 Postgres 立即关闭?

node.js - 输入是自动关闭的,不应有内容 Jade-Lang 问题

caching - 在不是结构方法的函数上实现缓存的惯用方法是什么?

google-app-engine - Memcached:缓存对象总是好的? (GAE 客观化)

javascript - 如何将数组中的对象放入按日期排序的新数组中?

javascript - 如何创建动态 HTML header

javascript - 单击 div 并在鼠标悬停时淡出

performance - 缓存视频背景

javascript - 将多个文本区域保存到可下载的 .txt 文件中并保持格式