Как сохранить данные кэша Redis в mongodb с помощью node.js

Я имею 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);
});
    });

1 ответ

Можете ли вы быть более ясным, пожалуйста. Но если я хорошо вас понял, то вы хотите сохранить данные из кэша Redis в MongoDB. Ну, для начала, я также немного новичок в кэшировании MongoDB и Redis, но в моем приложении я понял, что могу делать все данные для сохранения в MongoDB, то есть получить идентификатор пользователя, например, из пользовательского кэша Redis и затем выполните простое обновление MongoDB по Id, которое можно найти здесь 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. Легче,

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

Я знаю, что этот ответ опоздал, и вы, вероятно, получили решение для него, но я ответил на него для дальнейшего использования людьми, которые могут столкнуться с той же проблемой, что и вы. Благодарю вас.

Другие вопросы по тегам