Node.js Node/Express应用程序,用于查询第三方API并将响应存储在memcache/redis中30分钟,以备将来查询

Node.js Node/Express应用程序,用于查询第三方API并将响应存储在memcache/redis中30分钟,以备将来查询,node.js,rest,express,memcached,Node.js,Rest,Express,Memcached,此处根据应用程序结构进行常规查询。基本上,我有一个SPA,我的目标是显示第三方API的赔率 为了减少该API上的工作负载,我想构建一个node/express中间件,以便查询首先检查memcache/redis缓存,如果缓存了相同的值,则返回数据,如果未缓存,则点击API并返回响应,同时添加到缓存以备将来查询,时间限制为X。(不确定是否需要像mongodb这样的实际db来处理缓存) 这里我想实现的关键部分是缓存,因为我希望避免API在数据相同时做出响应,从而避免缓存 我想我这里的问题是,上面的场

此处根据应用程序结构进行常规查询。基本上,我有一个SPA,我的目标是显示第三方API的赔率

为了减少该API上的工作负载,我想构建一个node/express中间件,以便查询首先检查memcache/redis缓存,如果缓存了相同的值,则返回数据,如果未缓存,则点击API并返回响应,同时添加到缓存以备将来查询,时间限制为X。(不确定是否需要像mongodb这样的实际db来处理缓存)

这里我想实现的关键部分是缓存,因为我希望避免API在数据相同时做出响应,从而避免缓存

我想我这里的问题是,上面的场景有意义吗?还是我在开始之前就把它复杂化了

对于任何错误,我深表歉意,后端和缓存对我来说都是全新的


提前感谢

我们的想法是首先检查数据是否在缓存中,如果没有,则从API获取数据并写入缓存

下面是使用
redis
request

function getThirdParty(req,res){

    //unique identifier for the cache 
    const redisKey = req.body.key 

    //check the result is in cache
    client.getAsync(redisKey).then(function(result) {
       if(result){ 
           res.json({
               result:result,
               cache:true
           })
     }else{
        //not in cache made the api request 
        request('http://www.thirdpartyapi.com', function (error, response, body) {
        //set the api  result in cache   
        client.set(redisKey,body);

            res.json({
                result:body,
                cache:false
            })
     });
    }
 });
 }