我有几个 VueX 操作(仅在服务器上运行)并从nuxtServerInit. 他们向外部服务发出 HTTP 请求,这会降低 TTFB 的速度。
我想实现一个缓存插件,可以从 Redis 存储和检索值。目的是避免在对每个请求的操作中发出 HTTP 请求。
我首先在 nuxt.js 配置文件中添加一行。
{ src: '~/plugins/cache', ssr: true, mode: 'server' },
然后我在 resources/plugins/cache.js
import redis from 'redis';
export default ({ app }, inject) => {
console.log('Creating redis client');
inject('cache', redis.createClient({
//options removed for brevity
}));
}
Run Code Online (Sandbox Code Playgroud)
我运行该应用程序,可以看到在每次刷新页面时将“创建 redis 客户端”打印到控制台。是否可以创建一个在服务器启动时实例化的插件,并且每个请求都使用相同的实例?或者,如果这是不可能的,那么实现缓存的最佳方法是什么?