【发布时间】:2020-12-20 16:34:37
【问题描述】:
我有几个 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
}));
}
我运行应用程序,可以看到每次刷新页面时控制台都会打印“正在创建 redis 客户端”。是否可以创建一个在服务器启动时实例化的插件,并且每个请求都使用相同的实例?或者如果这不可能,实现缓存的最佳方式是什么?
【问题讨论】:
-
为什么要在服务器端调度这些操作?
标签: vue.js vuejs2 vuex nuxt.js