1

我有redis客户端mongodb,我想加速我的数据库,为此我从redis缓存中获取用户详细信息并希望将其保存到mongodb使用中node.js

你的回答对我很有帮助。

client.smembers('login',function(err,obj){
    if(obj.length === 0)
                    callback(obj);
    obj.forEachDone(function(reply,done){
        console.log(reply);
        client.hgetall(reply,function(err,value){
            value.login_value = decodeURI(value.login_value);
            done(value);
    });     
    },this,function(objArr){
            objArr.sort(utils.compare);
            console.log(objArr);
});
    });
4

1 回答 1

0

你能更清楚吗?但是,如果我很了解您,您想要做的就是将 Redis 缓存中的数据保存到 MongoDB。首先,我对 MongoDB 和 Redis 缓存也有点陌生,但是在我的应用程序上,我意识到我可以将所有数据保存到 MongoDB,例如从 Redis 用户缓存中获取用户 ID 和然后按 ID 进行简单的 MongoDB 更新,可以在这里找到https://mongodb.github.io/node-mongodb-native/markdown-docs/insert.html。更轻松,

collection.update(criteria, update[[, options], callback]);

您应该做的另一件事是在将用户插入缓存时设置超时。例如,如果您的应用程序涉及大量更新文档,您可以设置更快的超时,以始终确保您的 Redis 缓存经常更新。如果您的应用程序不是那么复杂,尽管您可以每两个小时更新一次 Redis 缓存,这样就可以了。Redis 集过期可在此 GitHub 答案https://github.com/NodeRedis/node_redis/issues/1000#issuecomment-193155582中找到。更轻松,

client.set(key, value, 'EX', 60 * 60 * 24, callback);

我知道这个答案已经晚了,您可能已经解决了它,但我已经回答了它,以供可能遇到与您相同问题的人将来参考。谢谢你。

于 2018-11-27T07:09:28.590 回答