Как обновлять кэш Redis в соответствии с mongoDB?
У меня есть 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})
}
}
Я считаю, что есть лучший способ поддержания согласованного кэширования.
заранее спасибо