Redis的事務分析與簡介

2021-12-30 08:24:45 字數 719 閱讀 6740

事務

redis 事務可以一次執行多個命令, 並且帶有以下兩個重要的保證:

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

事務是乙個原子操作:事務中的命令要麼全部被執行,要麼全部都不執行。

乙個事務從開始到執行會經歷以下三個階段:

開始事務。multi

命令入隊。

執行事務。exec

事務常用命令

multi

redis multi 命令用於標記乙個事務塊的開始。

事務塊內的多條命令會按照先後順序被放進乙個佇列當中,最後由 exec 命令原子性(atomic)地執行。

返回值:總是返回ok

exec

redis exec 命令用於執行所有事務塊內的命令

返回值: 事務塊內所有命令的返回值,按命令執行的先後順序排列。 當操作被打斷時,返回空值 nil 。

discard

redis discard 命令用於取消事務,放棄執行事務塊內的所有命令。

返回值: 總是返回 ok 。

watch

redis watch 命令用於監視乙個(或多個) key ,如果在事務執行之前這個(或這些) key 被其他命令所改動,那麼事務將被打斷

unwatch

redis unwatch 命令用於取消 watch 命令對所有 key 的監視

redis基礎簡介(三) 事務

和眾多其它資料庫一樣,redis作為nosql資料庫也同樣提供了事務機制。在redis中,multi exec discard watch 這四個命令是我們實現事務的基石。相信對有關係型資料庫開發經驗的開發者而言這一概念並不陌生,即便如此,我們還是會簡要的列出redis中事務的實現特徵 在事務中的所...

Redis事務原理分析

在redis的事務裡面,採用的是樂觀鎖,主要是為了提高效能,減少客戶端的等待。由幾個命令構成 watch,unwatch,multi,exec,discard。通過watch,可以實現cas操作。使用watch監聽一些鍵,然後去檢查鍵的值,然後根據鍵的值來決定是否還需要進行multi,如果鍵的值被改...

Redis事務的分析及改進

資料acid特性滿足了幾條?為了保持簡單,redis事務保證了其中的一致性和隔離性 不滿足原子性和永續性 redis事務在執行的中途遇到錯誤,不會回滾,而是繼續執行後續命令 違反原子性 事務可以理解為乙個打包的批量執行指令碼,但批量指令並非原子化的操作 中間某條指令的失敗不會導致前面已做指令的回滾,...