Redis的事務筆記

2021-10-17 14:06:28 字數 1281 閱讀 2857

常用命令

命令功能

discard

取消事務,放棄執行事務塊內所有命令

exec

執行所有事務塊內的命令

multi

標記乙個事務塊開始

unwatch

取消watch命令對所有key的監視

watch

監視1個或多個key,如果在事務執行之前這個key被其他命令所改動,那麼事務將被打斷

1)正常執行

2)放棄事務

3)redis語法錯誤(回滾)

有點像編譯時異常

4)執行錯誤丟擲

像執行時異常

5)watch監控

① 監控了key,如果key被修改了,後面乙個事務的執行失效

②可以通過unwatch取消全部監控

③一旦執行了exec之前加的監控鎖都會被取消掉了

1)開啟:以multi開始乙個事務

2)入隊:將多個命令入隊到事務中,接到這些命令並不會立即執行,而是放到等待執行的事務佇列裡面

3)執行:由exec命令觸發事務

1)單獨的隔離操作:事務中的所有命令都會序列化、按順序地執行。事務在執行的過程中,不會被其他客戶端傳送來的命令請求所打斷。

2)沒有隔離級別的概念:佇列中的命令沒有提交之前都不會實際的被執行,因為事務提交前任何指令都不會被實際執行,也就不存在」事務內的查詢要看到事務裡的更新,在事務外查詢不能看到」這個讓人萬分頭痛的問題

3)不保證原子性:redis同乙個事務中如果有一條命令執行失敗,其後的命令仍然會被執行,沒有回滾

redis事務筆記

總結 redis 事務不同於mysql,oracle 事務,它是乙個操作的集合,事務中無論那一條命令執行報錯,不會影響下面命令的繼續執行,已經執行成功的命令也不會回溯。所以redis 事務是不具備操作的原子性。在執行exec命令執行前,redis 命令會被放到佇列裡面,並不會真正的執行。在事務執行的...

Redis學習筆記 Redis事務

redis事務可以一次執行多個命令 按順序地序列執行,執行中不會被其他命令插入,不許加塞 1.簡介 redis事務可以一次執行多個命令 允許在一次單獨的步驟中執行一組命令 特徵 1 批量操作在傳送exec命令前被放入佇列快取 2 收到exec命令後進入事務執行,事務中任意命令執行失敗,其餘的命令依然...

redis事務學習筆記

redis事務 可以一次執行多個命令,本質是一組命令的集合。乙個事務中的所有命令都會序列化,按順序地序列化執行而不會被其它命令插入,不許加塞。在提交事務提交前,每個命令將以佇列的形式入隊,直到提交事務。redis事務非關係型資料庫事務 有可能會出現部分失敗部分成功 具體看舉例說明。multi 標記乙...