首页 > 解决方案 > 如何缓存 Express.js 中从磁盘读取的特定路由

问题描述

我有 Express.js API,其中包含从驱动器(文件系统)加载的静态内容很少的路由。

例如:GET /locale?lang=en- 从驱动器加载en.json并将其解析为 JSON 响应。

Express.js 是否对此类请求有一些本机缓存,或者我只是应该将语言文件加载到变量(内存)中并将其提供给来自内存的请求 + 创建一些系统,该系统将在以下情况下自动刷新内存版本变化?

标签: node.jsexpresscaching

解决方案


从磁盘读取文件一次后,它可能会被操作系统缓存,例如文件系统,并在下次从内存中提供服务。除非没有足够的可用内存。为了提高 Express 性能,通过异步执行所有磁盘操作来确保磁盘 I/O 没有阻塞非常重要。在许多实际情况下,这对于单个磁盘文件就足够了。除此之外,Express 没有内置缓存,但可以使用一些分布式缓存来实现:Redis 在许多情况下更易于使用,memcached 提供更多 Spartan 功能但性能更高。


推荐阅读