Redis的事務很雞肋,并不能保證原子性,也不支持回滾,
Redis使用MULTI、EXEC、DISCARD、WATCH命令來實作事務功能,Redis事務是一組命令的集合,事務中的所有命令都被序列化加入佇列并按順序執行,事務執行期間不會被中斷,
使用Redis事務三個步驟:
- 開始事務(MULTI)
- 命令入隊
- 執行事務(EXEC)/ 撤銷事務(DISCARD)
WATCH通過CAS實作,用來監視某個key,如果監視的key被其他客戶端修改,EXEC將會放棄執行事務佇列中的所有命令,WATCH只能在MULTI之前執行,可以通過UNWATCH取消監視,
Redis內部錯誤處理:
- 語法錯誤:命令不存在、key資料型別不匹配、引數錯誤,這種情況事務里的所有命令都不會被執行,
- 運行錯誤:服務宕機、操作命令與操作的資料型別不匹配,這種情況會導致正確的命令被執行,錯誤的命令不被執行,
所以Redis事務有什么用呢?
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/278141.html
標籤:其他
上一篇:第一節——初識資料庫系統
