如何与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})
}
}
我相信有更好的方法来保持一致的缓存。
预先感谢