caching节点js上数据的最佳方法

我有Json文件,我需要寻找具体的价值(文件是相当大的),我想把这个JSON到arrays,这样做会更容易,更快。 但是保存这个数组的最好方法是什么? 所以我不需要每次运行这个JSON,它会被保存,直到回收或服务重新启动? (节点js项目)

1)使用Redis 推荐

优点:

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

缺点:

  1. 如果您有嵌套的对象,可能会遇到一些限制,但有一个解决方法需要额外的工作来处理。

2)使用数据库首选的 MongoDB ,

优点:

  1. 由于MongoDB支持JSON,所以很容易Save/Load对象。
  2. Redis专业人员的2号一样

缺点:

  1. 你必须每次查询访问对象。

3)使用不推荐的 文件 ,当您的应用程序start/restart ,将您的对象表单文件加载到全局数组中,当close/shutdown应用程序时,将全局数组中的对象转储回文件中。

优点:

  1. 快速访问对象

缺点:

  1. 堆内存泄漏,如果你的对象的大小是巨大的。
  2. 数据丢失,如果你的应用程序崩溃。

最后这是你的select,如果速度很重要,selectRedis ,如果你想要简单的方法selectmongoDB 。 如果这不是一个问题,丢失一些数据去为Files 。 你也可以混合2号3号