在執行指令的過程中,多條連續執行的指令會被干擾、打斷、插隊。redis事務就是將預定義命令包裝成乙個整體(乙個佇列),在執行時,一次按照新增順序依次執行,中間不會被打斷或者干擾。
乙個佇列中,一次性、順序性、排他性的執行一系列命令
對於對個客戶端同時操作同一組資料,並且這一組資料在操作修改後不適於繼續操作,因此在操作之前要鎖定操作的資料,一旦變化就終止當前操作。
分布式鎖
操作完畢通過del操作釋放鎖
注意:這只是一種設計概念,依賴規範保障,具有風險
應用:應用基於分布式鎖對應的場景控制 死鎖
某個使用者操作時對應客戶端宕機,且此時已經獲取到了鎖,存在加鎖後未解鎖的風險。因此就要為鎖key新增時間限定,到時不釋放,放棄鎖。
expire lock-key second
pexpire lock-key millisecond
Redis Redis原理 事務
什麼是事務?一系列操作要麼全部執行,要麼全部不執行。也就是保證連續多個操作的原子性。比如前面redis分布式鎖時提到的setnx和expire的問題 redis事務基本用法 multi 事務的開始 exec 事務的執行 discard 事務的丟棄,用於丟棄事務快取佇列中的所有指令,在exec之前 m...
Java基礎 事務
一 事務 簡單點說,事務就是一件事情。所有與事務相關的內容都是圍繞這一件事情展開的。二 事務的特性 acid a atomicity 原子性 事務必須是乙個不可分割的整體。c consistency 一致性 執行完資料庫操作後,資料不會被破壞。如 從 a 賬戶轉賬到 b,要保證 a 賬戶扣錢後,b ...
Mysql事務基礎
1.事務 transaction 可以是一句sql語句,也可以是一段sql語句。2.mysql中事務預設自動提交 commit 3.事務回滾 rollback 在該事務沒有提交的情況下,回退到該事務執行之前。如果該事務已經被提交,則無法回滾。4.避免事務自動提交的兩種辦法 把資料庫設定成非自動提交。...