Redis緩存應用場景

記錄一下自己的聽課筆記,看的網課。

參考資料:https://zhuanlan.zhihu.com/p/157717158

常見應用場景

1 數據緩存

  緩存一些常用的、經常訪問的、不經常變化的數據,也就是相對穩定即時性低的,比如說:菜單/權限/類別/數據字典。

2 文章點贊/閱讀量

  這樣的數據放緩存是因爲文章的閱讀量和點贊量變化太快了,如果頻繁的更新數據庫,數據庫壓力太大了,頂不住的。如果放到redis中緩存起來,讀寫更快。加入開啓redis的數據持久化,就算redis崩掉也沒事,因爲數據都存到磁盤裏面了,然後定時或者一定次數的寫入數據庫,同步數據就行了。就算數據丟了也沒有問題,不是什麼影響業務的數據。

3 密碼錯誤

  假如有這樣一種需求:限制24小時內密碼只能錯誤5次,輸入密碼錯誤5次後就不讓登錄了。我們平常是不是有這樣一種做法,在數據表裏面加個字段記錄一下這個人的錯誤次數,每次密碼錯誤就更新錯誤次數,判斷錯誤次數是否超出所限制的次數。這時候我們可以放到redis緩存裏面使用用戶名做key+次數做value記錄一下這個人的嘗試次數,設置有效期24小時。

4 微信公衆號投票

  同密碼錯誤場景一致

5 秒殺

  東西少併發高,如果直接訪問數據庫的話數據庫頂不住。加上redis的話,我們可以把庫存放到redis中存儲,redis本身有一個單線程模型,可以來一個請求,我們訪問一下數據庫,如果庫存沒有了直接返回結果,不會再訪問數據庫了。

6 分佈式鎖

  Redis可用於實現分佈式鎖。爲了確保分佈式鎖可用,至少鎖的實現必須同時滿足以下條件:

    1)互斥在任何時候,只有一個客戶端可以持有該鎖;

    2)不會發生死鎖;

    3)鎖定和解鎖必須是同一客戶端,並且該客戶端無法解鎖他人添加的鎖。

7 分佈式 Session

  使用Redis在其他存儲上緩存會話的優點是Redis提供了持久性,目前很多解決方案都採用Redis作爲會話存儲解決方案。待補充。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章