Redis基本事務
阿新 • • 發佈:2020-10-22
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和客戶端的互動次數,提高效能。
沒有事務的話,每個執行緒都可以同時訪問並修改資料庫,下面的例子將展示範例。
轉載於:https://my.oschina.net/airship/blog/610881