Redis基本事務

bingnan 8年前發布 | 8K 次閱讀 Redis NoSQL數據庫

來自: https://abcfy2.gitbooks.io/redis-in-action-reading-notes/content/commands_in_redis/basic_redis_tr...


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和客戶端的交互次數,提高性能。

沒有事務的話,每個線程都可以同時訪問并修改數據庫,下面的例子將展示范例。


 本文由用戶 bingnan 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!