有什么方法可以使用Apollo-server 2.x来实现服务器端缓存吗?

时间:2019-01-29 05:53:06

标签: reactjs graphql apollo-client apollo-server

  

当前,我正在为我的应用程序使用“ GrandStack”。我的挑战   面对缓存。我想在客户端和   后端。

在客户处

我正在使用Apollo客户端的React Js:默认情况下,Apollo客户端在应用程序级别维护商店(使用Apollo提供的客户端将整个应用程序包装起来)

  

在这里排队..如果我导航到任何已访问页面,则该数据应作为服务器   即使在页面刷新时也可以从缓存中获取

在后端:   我正在使用Apollo-server 2 + express + Neo4j作为数据库

  

有什么办法可以在服务器上缓存“客户端请求”?如果用户点击相同   向服务器请求数据应该来自服务器缓存?

请帮助我提供一些参考代码。谢谢。

1 个答案:

答案 0 :(得分:1)

对于相同的情况,我已经实现了LRU缓存,其中将查询存储为键,并将响应存储为值。

const LRU = require("lru-cache")

const lruCache = new LRU({
    maxElements: 1000,
    length: (n, key) => {
        return n * 2 + key.length
    },
    dispose: function (key, n) {
        // n.close()
    },
    maxAge: 1000 * 60 * 60
})

设置值lruCache.set(key, value)并获取const data = lruCache.get(key);

“钥匙”是您的要求。

还有其他选择,但这是最受欢迎的(这就是我所相信的)

URL-https://www.npmjs.com/package/lru-cache