Redis基本事務
來自: https://abcfy2.gitbooks.io/redis-in-action-reading-notes/content/commands_in_redis/basic_redis_tr...
Redis基本事務
有時候我們為了同時操作多種數據結構,需要多次調用命令在同一時刻。Redis有五種命令可以讓我們不間斷的操作多種keys: WATCH
,MULTI
,EXEC
,UNWATCH
和DISCARD
在Redis中一個基本事務是什么?
在Redis中,一個基本事務包括MULTI
和EXEC
,意思是提供給客戶端執行多個命令A,B,C,...的功能,其他客戶端不能打斷。這個和關系型數據庫的可以部分執行,然后回滾或遞交的事務不同。在Redis中,每個作為一個基本的MULTI
/EXEC
事務的一部分傳遞的命令,都將一個執行完執行下一個。在它們都執行完畢后,其客戶端才可以執行自己的命令。
當看到MULTI
,Redis將會從相同的連接組建命令隊列,直到它看到一個EXEC
,才會不中斷的執行整個命令隊列。在語義上,Python類庫處理事務使用一個叫pipeline
的方法。在連接對象上調用pipeline()
方法將會創建一個事務,正確的話將會自動使用MULTI
和EXEC
包裝一個命令隊列。Python Redis客戶端也會存儲命令,直到我們真正需要發送的時候才發送。這會減少Redis和客戶端的交互次數,提高性能。
沒有事務的話,每個線程都可以同時訪問并修改數據庫,下面的例子將展示范例。
本文由用戶 bingnan 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!