Redis緩存點贊數,刷新頁面后數據不一致,如何解決?

Redis緩存點贊數,刷新頁面后數據不一致,如何解決?

redis 緩存邏輯的困惑?

在構建一個博客系統時,如何利用 Redis 來記錄點贊數和用戶點贊狀態存在一些疑問。

對于 A 用戶的點贊操作,如果僅存儲在 Redis 中,當用戶刷新頁面時,后端的 mysql 查詢卻沒有同步到 Redis 的點贊信息。此時是否需要循環 MySQL 查詢結果并與 Redis 中的點贊狀態匹配?并將 MySQL 中的點贊總數與 Redis 中的點贊總數相加后再返回給前端?

答案:對 Redis 的理解有誤

Redis 并非數據源,而是緩存機制。其作用是加速數據讀取,而不是同步數據到數據庫

正確的做法:Cache Aside

在 Cache Aside 架構中,數據更新遵循以下步驟:

  • 讀取數據時:

    • 先查詢 Redis 緩存。
    • 有則直接返回。
    • 無則查詢 MySQL 并將結果寫入 Redis,然后返回。
  • 寫入數據時:

    • 先更新 MySQL。
    • 刪除 Redis 中的緩存數據。

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享