代码之家  ›  专栏  ›  技术社区  ›  vamshi krishna

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

  •  0
  • vamshi krishna  · 技术社区  · 7 年前

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

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

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

    当数据库中的数据更新后,用户仍然从缓存中获取旧数据,直到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 回复  |  直到 7 年前