前言#
今天學習 redis 時,發現 redis 的事務功能無法回滾,也就是在執行事務時,如果中間的某個命令執行出錯了,不會回滾到事務之前,而是繼續執行下去
What ? What ?,那事務還有毛用,沒有原子性,沒有一致性
根據我查閱資料,和思考,稍微總結了一下,可能不全面
隔離性#
雖然不支持回滾了,但是還有並發環境下的隔離性,watch
可以實現類似樂觀鎖,會在最後 exec
時檢查是否衝突
簡單高效#
我們發現,學習過那麼多的 redis 命令,好像沒什麼命令會報錯,就算你輸入的 key 出錯了,也就是報個 nil
,只有你的 redis 命令語法出錯時,或使用錯誤類型的鍵才會報錯,而這些錯誤應該在開發時發現。
所以沒有了回滾,Redis 的內部可以更加地簡單高效,從而提高性能
這麼說就沒必要支持回滾了,這樣使得 redis 更加簡單高效