您好,登錄后才能下訂單哦!
這篇文章主要介紹“Redis Transactions命令的作用是什么”,在日常操作中,相信很多人在Redis Transactions命令的作用是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Redis Transactions命令的作用是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
Redis的事務和我們常見的數據庫的事務最大的區別就是,Redis的事務中如果有一個命令執行失敗,其他命令仍然可以執行成功。Redis的事務以MULTI開始,由EXEC觸發。在EXEC前的操作都將被放入緩存隊列中。在事務執行過程中其他客戶端的命令不會插到事務中執行。下面就來介紹一下Redis事務相關的命令。
最早可用版本:2.0.0
放棄所有隊列中的命令,將連接狀態置為正常狀態。如果事務被WATCH,則取消所有的WATCH。
最早可用版本:1.2.0
執行隊列中的全部命令,將連接狀態置為正常狀態。如果某些key處于被監視狀態,并且隊列中有和這些key相關的命令。那么EXEC命令只有在這些key的值沒有變化的情況下事務才會執行,否則事務被打斷。
最早可用版本:1.2.0
標記事務塊的開始,之后的命令被順序插入緩存隊列中,可以用EXEC命令執行這些命令。
最早可用版本:2.2.0
時間復雜度:O(1)
清除掉所有被WATCH的key,如果調用了EXEC或者DISCARD命令,則不用手動調用UNWATCH命令。
最早可用版本:2.2.0
時間復雜度:對每個都是O(1)
將指定的key標記為被監視狀態,如果事務執行前被改動,則事務會被打斷。
最后舉一個事務被打斷的栗子
1127.0.0.1:6379> SET lock_time 1
2OK
3127.0.0.1:6379> WATCH lock_time
4OK
5127.0.0.1:6379> MULTI
6OK
7127.0.0.1:6379> SET transcation_key z #這時另一個客戶端執行了命令 SET lock_time 2
8QUEUED
9127.0.0.1:6379> INCR lock_time
10QUEUED
11127.0.0.1:6379> EXEC
12(nil)
13127.0.0.1:6379> GET transcation_key
14(nil)
到此,關于“Redis Transactions命令的作用是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。