Redis系列學習筆記12 事務

來源:互聯網
上載者:User
事務

Redis 的事務功能允許使用者將多個命令包裹起來,然後一次性地、按順序地執行被包裹的所有命令。在事務執行的過程中,伺服器不會中斷事務而改去執行其他命令請求,只有在事務包裹的所有命令都
被執行完畢之後,伺服器才會去處理其他命令請求。

命令 作用
MULTI 開始一個新的事務。
DISCARD 放棄事務。
EXEC 執行事務中的所有命令。

MULTI

開始一個事務。在這個命令執行之後,用戶端發送的所有針對資料庫或者資料庫鍵的命令都不會被立即執行,而是被放入到一個事務隊列裡面,並返回 QUEUED 表示命令已入隊。

DISCARD

取消事務,放棄執行事務隊列中的所有命令。

EXEC

按照命令被入隊到事務隊列中的順序,執行事務隊列中的所有命令。命令的複雜度為隊列中所有命令的複雜度之和。命令的傳回值是一個列表,列表裡包含了事務隊列中所有被執行命令的傳回值。 樂觀鎖

使用鎖來保證資料的正確性

WATCH key [key …]

如果被監視的鍵在事務提交之前(也即是 EXEC 命令執行之前), 已經被其他用戶端搶先修改了, 那麼伺服器將拒絕執行用戶端提交的事務, 並返回 nil 作為事務的回複。

樂觀鎖會對被加鎖的資料進行監視,多個用戶端可以同時嘗試對資料進行修改,其中最先嘗試的用戶端會成功,而之後嘗試的用戶端則會失敗。

悲觀鎖只讓一個用戶端對資料進行修改,而其他用戶端則需要等待進行中修改的用戶端執行完畢之後,才能嘗試獲得修改權。

對於頻繁進行讀寫操作的 Redis 來說,使用樂觀鎖可以避免用戶端被阻塞:當一個用戶端修改資料失敗之後,它只要重試就可以了,這個過程不需要進行任何的等待。

UNWATCH

取消對所有鍵的監視。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.