caching节点js上数据的最佳方法
我有Json文件,我需要寻找具体的价值(文件是相当大的),我想把这个JSON到arrays,这样做会更容易,更快。 但是保存这个数组的最好方法是什么? 所以我不需要每次运行这个JSON,它会被保存,直到回收或服务重新启动? (节点js项目)
1)使用Redis 推荐
优点:
- 访问对象超快。
- 与
node
进程隔离。- 不会影响堆内存。
- 可以部署在分离的服务器上。
- 数据持久性,如果你的应用程序崩溃。
- 支持压缩。
- 低内存消耗。
缺点:
- 如果您有嵌套的对象,可能会遇到一些限制,但有一个解决方法需要额外的工作来处理。
2)使用数据库首选的 MongoDB ,
优点:
- 由于
MongoDB
支持JSON,所以很容易Save/Load
对象。 - 与
Redis
专业人员的2号一样
缺点:
- 你必须每次查询访问对象。
3)使用不推荐的 文件 ,当您的应用程序start/restart
,将您的对象表单文件加载到全局数组中,当close/shutdown
应用程序时,将全局数组中的对象转储回文件中。
优点:
- 快速访问对象
缺点:
- 堆内存泄漏,如果你的对象的大小是巨大的。
- 数据丢失,如果你的应用程序崩溃。
最后这是你的select,如果速度很重要,selectRedis
,如果你想要简单的方法selectmongoDB
。 如果这不是一个问题,丢失一些数据去为Files
。 你也可以混合2号和3号 。