redis事務介紹

來源:互聯網
上載者:User

  redis中的事務本質上是一組命令的集合。一個事務中的所有命令都會被序列化,按照順序串列地執行而不會被其他命令插入。
  redis通過下面的五條命令來支援事務:
  1. MULTI:標記一個事務塊的開始
  2. EXEC:執行所有事務塊中的命令
  3. DISCARD:放棄執行所有事務塊中的命令
  4. WATCH:監視一個或多個key,如果在事務執行之前這些key被其他命令改動,那麼事務會被打斷
  5. UNWATCH:取消WATCH命令對所有key的監視

  樣本:
  
  
  
  
  
  
  
  
  
  現在,當我們將一個有語法錯誤的命令排入佇列,執行EXEC後會發現不僅錯誤的命令不會執行,而且正確的命令也不會執行:
  
  
  
  但是,當我們把一個文法正確,但是運行時會出錯的命令排入佇列,例如,對非數字類型的值執行自增操作,會發現,當執行EXEC後,僅僅該條錯誤命令不會執行,其他命令都會照常執行:
  
  
  
  所以可以說,redis是部分支援事務的。
  
  redis的WATCH命令可以監視一個或多個key,一旦其中有任意一個key被修改,那麼在此之後的事務都不會執行,例如:
  
  
  
  
  
  
  
  注意:由於WATCH命令的作用只是當被監控的鍵被修改後取消之後的事務,並不能保證其他用戶端不修改監控的值,所以當EXEC命令執行失敗之後需要手動重新執行整個事務:
  
  
  
  執行EXEC命令之後會取消監控使用WATCH命令監控的鍵,另外,也可以通過在執行MULTI命令之前使用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.