维护monogoDB和Redis缓存之间的更新

时间:2018-12-28 08:45:09

标签: node.js mongodb caching redis

如何与mongoDB一致地更新Redis缓存?

我在云服务器上安装了mongoDB,并在其中实现了Redis缓存 。以便我可以减少查询操作和响应时间。

var redis = require("redis"),
    client = redis.createClient({
    port:19634,
    host:'redis-xxxx-xxxx',
    password: 'testpasswd'
});

在Db中更新数据后,用户仍会从缓存中获取旧数据,直到Redis中的密钥过期为止。

我的添加记录的代码

exports.add_user = (req,res,next ) => {
    const user = new User{
        name : req.body.name,
        mobile : req.body.mobile,
        email: req.body.email.
        ...req.body
        }
    user.save()
        .exec()
        .then (res => {
            redisCLient.set(res.id, res, 'NX', 30);
            res.status(200).json(...res)    
        } )
}

获取数据

exports.get_all = async  (req,res,next ) => {
    try {
        let data = await User.find({}).cache (30)
        console.log( " \n got data \n ", data)
        res.status(200).json( data)
    }
    catch (err){
        console.log ( "error in fetching users", err.message);
        res.status(404).json({message: 'error happend ', err})
    }
}

我相信有更好的方法来保持一致的缓存。
预先感谢

0 个答案:

没有答案