gpt4 book ai didi

javascript - 为什么 Redis (Nodejs) 在将新项目添加到数据库后会自动更新其缓存?

转载 作者:可可西里 更新时间:2023-11-01 11:23:35 27 4
gpt4 key购买 nike

我想尝试一下 Redis,所以我编写了用于获取博客的简单端点,很快就遇到了“甜蜜的问题”,因为代码确实有效,但我不知道为什么。

我的想法是在初始请求后将博客存储在缓存中,这符合预期,但是,根据我的理解,我应该在添加新博客后遇到问题,但我没有。我将发布代码以获得更多视觉解释。

client.get = util.promisify(client.get);

const cachedBlogs = await client.get(req.user.id);

if (cachedBlogs) {
return res.send(JSON.parse(cachedBlogs));
}

const blogs = await Blog.find({ _user: req.user.id });
res.send(blogs);
client.set(req.user.id, JSON.stringify(blogs));

根据我的理解,在我发布新博客之前缓存应该没问题,因为在那种情况下 cachedBlogs 也将等于 true,但我只会返回以前版本的缓存,因为我从未管理过将新博客存储到缓存中。问题是我在添加新博客后立即在缓存中看到它,但我不知道为什么,因为如果缓存不为空,它总是在 if 语句 中终止。

所以更精确的问题是,考虑到这段代码,redis如何将新数据存储到缓存中?

最佳答案

首先,我认为自动更新是不可能的。

所以,你可以添加更多关于redis和db的日志;或者你可以调试你的代码。你会发现你的问题。

关于javascript - 为什么 Redis (Nodejs) 在将新项目添加到数据库后会自动更新其缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55976088/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com