1、 moulti 與 exec
以 moulti 開始乙個事務,然後將多個命令入隊到事務中, 最後由 exec 命令觸發事務, 一併執行事務中的所有命令
2、 discard 命令
discard 命令用於取消乙個事務, 它清空客戶端的整個事務佇列, 然後將客戶端從事務狀態調整回非事務狀態, 最後返回字串 ok 給客戶端, 說明事務已被取消。
3、 watch 命令
watch 命令用於在事務開始之前監視任意數量的鍵: 當呼叫 exec 命令執行事務時, 如果任意乙個被監視的鍵已經被其他客戶端修改了, 那麼整個事務不再執行, 直接返回失敗。
4、**redis執行事務過程原理
5、redis事務與傳統關係型事務的比較
1、 原子性(atomicity)
單個 redis 命令的執行是原子性的,但 redis 沒有在事務上增加任何維持原子性的機制,所以 redis 事務的執行並不是原子性的。
如果乙個事務佇列中的所有命令都被成功地執行,那麼稱這個事務執行成功。
2、 一致性(consistency)
入隊錯誤
在命令入隊的過程中,如果客戶端向伺服器傳送了錯誤的命令,比如命令的引數數量不對,等等, 那麼伺服器將向客戶端返回乙個出錯資訊, 並且將客戶端的事務狀態設為 redis_dirty_exec 。
執行錯誤
如果命令在事務執行的過程中發生錯誤,比如說,對乙個不同型別的 key 執行了錯誤的操作, 那麼 redis 只會將錯誤包含在事務的結果中, 這不會引起事務中斷或整個失敗,不會影響已執行事務命令的結果,也不會影響後面要執行的事務命令, 所以它對事務的一致性也沒有影響。
3、隔離性(isolation)
watch 命令用於在事務開始之前監視任意數量的鍵: 當呼叫 exec 命令執行事務時, 如果任意乙個被監視的鍵已經被其他客戶端修改了, 那麼整個事務不再執行, 直接返回失敗。
4、永續性(durability)
因為事務不過是用佇列包裹起了一組 redis 命令,並沒有提供任何額外的永續性功能,所以事務的永續性由 redis 所使用的持久化模式決定
Redis事務機制
參考學習 redis提供的事務機制,有別於關係型資料庫,因為中途執行失敗,它會跳過,上面執行的操作並不會回滾!它是執行一組命令,下面兩種情況錯誤的處理機制稍有區別 執行時執行錯誤,入隊成功但是執行失敗,會跳過繼續執行 語法錯誤,命令入隊失敗,事務會取消執行 redis在事務執行期間也有可能是被其他操...
redis 過期 淘汰 事務原子機制
set key value ex 60 鍵值對存活60秒 set key value px 60 鍵值對存活60毫秒 expire key 60 key60秒之後失效,在2.6版本之後使用pexpire設定毫秒數 3 檢視乙個key的有效期 ttl key 在2.6版本以上可以使用pttl,檢視毫秒...
redis資料庫的事務機制
redis雖然是nosql資料庫,但是作為被使用廣泛的快取性高速資料庫,當乙個鍵被多個請求同時訪問時,如何保證資料安全呢?其實redis也是有事務機制的,redis的事務機制類似於批處理功能,一旦開啟,不允許被打斷 事務機制的五個常用命令 1,watch 2,unwatch 3,multi 4,ex...