redis 緩存邏輯的困惑?
在構建一個博客系統時,如何利用 Redis 來記錄點贊數和用戶點贊狀態存在一些疑問。
對于 A 用戶的點贊操作,如果僅存儲在 Redis 中,當用戶刷新頁面時,后端的 mysql 查詢卻沒有同步到 Redis 的點贊信息。此時是否需要循環 MySQL 查詢結果并與 Redis 中的點贊狀態匹配?并將 MySQL 中的點贊總數與 Redis 中的點贊總數相加后再返回給前端?
答案:對 Redis 的理解有誤
Redis 并非數據源,而是緩存機制。其作用是加速數據讀取,而不是同步數據到數據庫。
正確的做法:Cache Aside
在 Cache Aside 架構中,數據更新遵循以下步驟:
-
讀取數據時:
- 先查詢 Redis 緩存。
- 有則直接返回。
- 無則查詢 MySQL 并將結果寫入 Redis,然后返回。
-
寫入數據時:
- 先更新 MySQL。
- 刪除 Redis 中的緩存數據。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END