共計 980 個字符,預計需要花費 3 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
這篇文章將為大家詳細講解有關 redis 事務的用法,丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
Redis 事務
MULTI, EXEC, DISCARD and WATCH 是 Redis 事務的基礎。用來顯式開啟并控制一個事務,它們允許在一個步驟中執行一組命令。并提供兩個重要的保證:
● 事務中的所有命令都會被序列化并按順序執行。在執行 Redis 事務的過程中,不會出現由另一個客戶端發出的請求。這保證 命令隊列 作為一個單獨的原子操作被執行。
● 隊列中的命令要么全部被處理,要么全部被忽略。EXEC 命令觸發事務中所有命令的執行,因此,當客戶端在事務上下文中失去與服務器的連接,
● 如果發生在調用 MULTI 命令之前,則不執行任何 commands;
● 如果在此之前 EXEC 命令被調用,則所有的 commands 都被執行。
同時,redis 使用 AOF(append-only file),使用一個額外的 write 操作將事務寫入磁盤。如果發生宕機,進程奔潰等情況,可以使用 redis-check-aof tool 修復 append-only file,使服務正常啟動,并恢復部分操作。(推薦:《Redis 視頻教程》)
用法
使用 MULTI 命令顯式開啟 Redis 事務。該命令總是以 OK 回應。此時用戶可以發出多個命令,Redis 不會執行這些命令,而是將它們排隊。EXEC 被調用后,所有的命令都會被執行。而調用 DISCARD 可以清除事務中的 commands 隊列并退出事務。
以下示例以原子方式,遞增鍵 foo 和 bar。
MULTI
INCR foo
QUEUED
INCR bar
QUEUED
EXEC
1)(整數)1
2)(整數)1
從上面的命令執行中可以看出,EXEC 返回一個數組,其中每個元素都是事務中單個命令的返回結果,而且順序與命令的發出順序相同。
當 Redis 連接處于 MULTI 請求的上下文中時,所有命令將以字符串 QUEUED(從 Redis 協議的角度作為狀態回復發送)作為回復,并在命令隊列中排隊。只有 EXEC 被調用時,排隊的命令才會被執行,此時才會有真正的返回結果。
關于 redis 事務的用法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
向 AI 問一下細節
丸趣 TV 網 – 提供最優質的資源集合!