在https://www.apollographql.com/docs/apollo-server/features/data-sources.html#Implementing-your-own-cache-backend的Apollo基础示例中,他们指出实现Redis缓存只需要这么简单:
当我查看非Redis的示例时,它说明这是一个简单的
无论我尝试什么,当我使用apollo-server提供的graphQL explorer时,我的缓存功能从未被调用。
我已经尝试过`cacheControl: true`和像https://medium.com/brikl-engineering/serverless-graphql-cached-in-redis-with-apollo-server-2-0-f491695cac7f中设置的`cacheControl`。但是都没有起作用。
是否有一个示例来实现基本的Apollo缓存,而不使用付费的Apollo Engine系统?
const { RedisCache } = require('apollo-server-cache-redis');
const server = new ApolloServer({
typeDefs,
resolvers,
cache: new RedisCache({
host: 'redis-server',
// Options are passed through to the Redis client
}),
dataSources: () => ({
moviesAPI: new MoviesAPI(),
}),
});
当我查看非Redis的示例时,它说明这是一个简单的
{ get,set }
缓存。这意味着理论上我应该能够做到。cache : {
get : function() {
console.log("GET!");
},
set : function() {
console.log("SET!");
}
}
无论我尝试什么,当我使用apollo-server提供的graphQL explorer时,我的缓存功能从未被调用。
我已经尝试过`cacheControl: true`和像https://medium.com/brikl-engineering/serverless-graphql-cached-in-redis-with-apollo-server-2-0-f491695cac7f中设置的`cacheControl`。但是都没有起作用。
是否有一个示例来实现基本的Apollo缓存,而不使用付费的Apollo Engine系统?
Redis服务器
或memcached服务器
,因为该软件包需要在本地主机或另一台服务器上的主机IP地址,即host:'redis-server'
,其中redis-server是IP地址。 - Mohamad Kaakati