1. 程式人生 > 實用技巧 >Redis基本事務

Redis基本事務

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

Redis基本事務

有時候我們為了同時操作多種資料結構,需要多次呼叫命令在同一時刻。Redis有五種命令可以讓我們不間斷的操作多種keys: WATCH,MULTI,EXEC,UNWATCHDISCARD

在Redis中一個基本事務是什麼?

在Redis中,一個基本事務包括MULTIEXEC,意思是提供給客戶端執行多個命令A,B,C,...的功能,其他客戶端不能打斷。這個和關係型資料庫的可以部分執行,然後回滾或遞交的事務不同。在Redis中,每個作為一個基本的MULTI/EXEC事務的一部分傳遞的命令,都將一個執行完執行下一個。在它們都執行完畢後,其客戶端才可以執行自己的命令。

當看到MULTI,Redis將會從相同的連線組建命令佇列,直到它看到一個EXEC,才會不中斷的執行整個命令佇列。在語義上,Python類庫處理事務使用一個叫pipeline的方法。在連線物件上呼叫pipeline()方法將會建立一個事務,正確的話將會自動使用MULTIEXEC包裝一個命令佇列。Python Redis客戶端也會儲存命令,直到我們真正需要傳送的時候才傳送。這會減少Redis和客戶端的互動次數,提高效能。

沒有事務的話,每個執行緒都可以同時訪問並修改資料庫,下面的例子將展示範例。


轉載於:https://my.oschina.net/airship/blog/610881