簡體   English   中英

為什么Redis(Nodejs)在將新項目添加到數據庫后會自動更新其緩存?

[英]Why does Redis (Nodejs) automatically updates its cache after new item has been added to database?

我想玩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 statement終止。

所以更准確的問題是,考慮到這段代碼,redis如何將新數據存儲到緩存中?

首先,我認為自動更新是不可能的。

所以,你可以添加更多關於redis和db的日志; 或者你可以調試你的代碼。 你會發現你的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM