您好,登錄后才能下訂單哦!
redis中有哪些事物命令,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
命令示例:
1. 事務被正常執行:
#在Shell命令行下執行Redis的客戶端工具。
/> redis-cli
#在當前連接上啟動一個新的事務。
redis 127.0.0.1:6379>multi
OK
#執行事務中的第一條命令,從該命令的返回結果可以看出,該命令并沒有立即執行,而是存于事務的命令隊列。
redis 127.0.0.1:6379>incr t1
QUEUED
#又執行一個新的命令,從結果可以看出,該命令也被存于事務的命令隊列。
redis 127.0.0.1:6379>incr t2
QUEUED
#執行事務命令隊列中的所有命令,從結果可以看出,隊列中命令的結果得到返回。
redis 127.0.0.1:6379>exec
1) (integer) 1
2) (integer) 1
2. 事務中存在失敗的命令:
#開啟一個新的事務。
redis 127.0.0.1:6379>multi
OK
#設置鍵a的值為string類型的3。
redis 127.0.0.1:6379>set a 3
QUEUED
#從鍵a所關聯的值的頭部彈出元素,由于該值是字符串類型,而lpop命令僅能用于List類型,因此在執行exec命令時,該命令將會失敗。
redis 127.0.0.1:6379>lpop a
QUEUED
#再次設置鍵a的值為字符串4。
redis 127.0.0.1:6379>set a 4
QUEUED
#獲取鍵a的值,以便確認該值是否被事務中的第二個set命令設置成功。
redis 127.0.0.1:6379>get a
QUEUED
#從結果中可以看出,事務中的第二條命令lpop執行失敗,而其后的set和get命令均執行成功,這一點是Redis的事務與關系型數據庫中的事務之間最為重要的差別。
redis 127.0.0.1:6379>exec
1) OK
2) (error) ERR Operation against a key holding the wrong kind of value
3) OK
4) "4"
3. 回滾事務:
#為鍵t2設置一個事務執行前的值。
redis 127.0.0.1:6379>set t2 tt
OK
#開啟一個事務。
redis 127.0.0.1:6379>multi
OK
#在事務內為該鍵設置一個新值。
redis 127.0.0.1:6379>set t2 ttnew
QUEUED
#放棄事務。
redis 127.0.0.1:6379>discard
OK
#查看鍵t2的值,從結果中可以看出該鍵的值仍為事務開始之前的值。
redis 127.0.0.1:6379>get t2
"tt"
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。