Redis的事務

Redis的事務是可以一次執行多個命令,是一組命令的集合。它是在一個隊列中,一次性並按照順序,排他性的執行一系列命令。
常用的命令:discard(放棄)、exec(執行)、multi(開啓)、unwatch(放棄監聽)、watch(監聽)
redis對事務是部分支持

1. 正常執行
用multi開啓事務,並用exec執行期間所有的Redis命令,正常的執行所有執行的多個命令。
2. 放棄事務
用multi開啓事務,並用discard執行期間所有的Redis命令,放棄期間執行的多個命令。
3. 全體連坐
只要一個命令執行錯誤,則所有的命令都提交錯誤。這種情況是在開啓事務之後,期間輸入的命令有錯,則提交的所有命令都不會成功。
4. 冤頭債主
執行命令只有錯誤的命令執行不成功。這種是在輸入的命令沒有出錯(如incr一個字符,運行的時候不會出錯,然是最後提交執行的時候出錯),這種情況則只會影響到這條命令的執行,其他命令還是正確執行。
5. watch監視
表鎖:把整個表都鎖起來,一致性好,但是併發性差。
行鎖:對數據庫表中的行鎖起來,一致性不好,併發性好。
客觀鎖:對行數據進行鎖起來,每條行數據都添加一個版本號,如果數據中的版本號和自己取得數據的版本號不一致,則首先取得最新數據,然後再修改。
悲觀鎖:認爲在修改期間,會對數據進行修改。因此採用表鎖方式。

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