Redis內存數據庫命令大全——事務

         Redis中事務是一組命令的集合。事務也是最小執行單位。事務的原理數將屬於一個事務的全部命令發送給redis,然後再讓redis依次執行這些命令。

       事務用multi開頭,表示接下來的命令全部是同一個事務,先不要直接執行,暫時存儲起來,直到接受到執行命令後再統一依次執行。接着輸入事務處理內容的命令,當輸入要執行的命令後,redis返回是QUEUED,表示命令已經進入待執行的狀態,寫入到了事務執行隊列中。當把所有要執行的命令輸入完,使用exec命令開始執行隊列中的所有命令,exec的返回值是這些命令的返回值組成的列表,返回值順序與命令的順序相同。Redis保證一個事務中的所有命令要麼全部執行,要麼都不執行,如果沒有發送exec命令,或者斷網,則redis會清空事務隊列,事務中的全部命令都不會執行。

事務錯誤處理
錯誤場景一  語法錯誤
如果再事務中輸入的命令不存在或者參數不對,這種場景當輸入exec後,redis會返回錯誤,並且連正確的命令也不會執行。例如:

錯誤場景二 運行錯誤
運行錯誤是指在命令執行時出現的錯誤,比如使用散列的命令操作集合類型的鍵,這種錯誤在實際執行之前時redis是不會發現的,如果事務中一條命令出現了運行錯誤,其他的命令依然會被執行。例如:

需要注意的是,redis事務沒有關係數據庫事務提供的回滾功能,如果事務運行後的結果與期望不符合,需要開發者自行修改會原有狀態。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章