Redis從入門到深入 鎖 17

2021-10-08 16:24:51 字數 973 閱讀 4811

1. 鎖

1.1 基於特定條件的事務執行

業務場景

天貓雙11熱賣過程中,對已經售罄的貨物追加**,4個業務員都有許可權進行**。**的操作可能是一系列的操作,牽扯到多個連續操作,如何保障不會重複操作?

業務分析

解決方案

watch key1 [key2.....]
unwatch
1.2 基於特定條件的事務執行2

業務場景

天貓雙11熱賣過程中,對已經售罄的貨物追加**,且**完成。客戶購買熱情高漲,3秒內將所有商品購買完畢。本次**已經將庫存全部清空,如何避免最後一件商品不被多人同時購買?【超賣問題】

業務分析

解決方案

set nx lock-keyvalue
利用set nx命令的返回值特徵, 有值則返回設定失敗, 無值則返回設定成功

操作完畢通過del操作釋放鎖

注意:上述解決方案是一種設計概念,依賴規範保障,具有風險性

1.3 基於特定條件的事務執行3

業務場景

依賴分布式鎖的機制,某個使用者操作時對應客戶端宕機,且此時已經獲取到鎖,如何解決

業務分析

解決方案

expire lock-key second

pexpire lock-key milliseconds

由於操作通常都是微秒或毫秒級,因此該鎖定時間不宜設定過大,具體時間需要業務測試後確認。

- 例如:持有鎖的操作最長執行時間127ms,最短執行時間7ms

- 測試百萬次最長執行時間對應命令的最大耗時,測試百萬次網路延遲平均耗時

- 鎖時間設定推薦:最大耗時*120%+平均網路延遲*110%

- 如果業務最大耗時《網路平均延遲,通常為2個數量級,取其中單個耗時較長即可

Redis從入門到深入 刪除策略 18

1.刪除策略 1.1 過期資料 redis中的資料特徵 過期的資料真的刪除了嗎?1.2 資料刪除策略 1.定時刪除 2.惰性刪除 3.定期刪除 1.3 時效性資料的儲存結構 1.4 資料刪除策略的目標 在記憶體占用與cpu占用之間尋找一種平衡,顧此失彼都會造成整體redis效能的下降,甚至引發伺服器...

Redis從入門到深入 Hash的value

2.hash型別 2.1 儲存的困惑 物件類資料的儲存如果具有較頻繁的更新需求操作會顯得笨重 2.2 hash型別 2.3 hash型別資料的基本操作 hsethget hgetallhdel field2 hmset hmget hlenhexistshkeys hvalshincrby hinc...

Redis從入門到入門

2安裝1.1支援的儲存結構 remote dictionary server 以字典儲存資料,允許其他應用通過tcp協議訪問字典內容。支援的鍵值型別 優點 redis的字典儲存方式和多重鍵值儲存方式,使得程式設計師可以直接將程式中的資料對映到redis中,資料在redis中的儲存方式和其在程式中的儲...