在节点js上缓存数据的最佳方法

时间:2016-08-21 12:08:09

标签: javascript arrays node.js

我有Json文件我需要寻找特定的值(文件非常大)我希望将这个json变成数组,这样做会更容易,更快。 但是保存这个数组的最佳方法是什么?所以我不需要每次都跑过这个json,它会被保存,直到回收或服务重启? (节点js项目)

1 个答案:

答案 0 :(得分:0)

1)使用Redis 推荐

<强> 优点:

  1. 超快速访问对象。
  2. node进程隔离。
    • 不会影响堆内存。
    • 可以部署在独立的服务器上。
    • 如果您的应用程序崩溃,数据持久性。
  3. 支持压缩。
    • 内存消耗低。
  4. <强> 缺点:

    1. 如果您有嵌套对象,则可能会遇到一些限制 是一种解决方法,需要额外的工作来处理。
    2. 2)使用数据库首选 MongoDB

      <强> 优点:

      1. Save/Load对象很容易,因为MongoDB支持JSON。
      2. Redis pros
      3. 的数字 2 相同

        <强> 缺点:

        1. 每次都必须查询对象。
        2. 3)使用Files 不推荐,当您的应用程序start/restart时,将对象表单文件加载到全局数组中,当close/shutdown您的应用程序转储您的应用程序时全局数组中的对象返回文件。

          <强> 优点:

          1. 快速访问对象。
          2. <强> 缺点:

            1. 如果对象大小很大,则会导致内存泄漏。
            2. 如果您的应用程序崩溃,数据会丢失。
            3. 最后这是你的选择,如果速度很重要选择Redis,如果你想轻松选择mongoDB。如果丢失部分数据不是问题,请转到Files。您还可以在数字 2 3 之间进行混合。