前言#
今天學習 redis 時,發現 redis 的事務功能無法回滾,也就是在執行事務時,如果中間的某個命令執行出錯了,不會回滾到事務之前,而是繼續執行下去
What ? What ?,那事務還有毛用,沒有原子性,沒有一致性
根據我查閱資料,和思考,稍微總結了一下,可能不全面
性能優化#
由於事務是將所有的命令一次性的發送給伺服器的,而且是一次性執行,所以性能要更高
雖然但是,我覺得這一點小小的性能優化也沒什麼用
並發環境下的數據一致#
由於可能有多個客戶端同時對一個 redis 實例進行操作,事務可以保證在執行時不會被插隊,所以雖然無法保證事務內的命令數據一致,但是可以保證並發環境下的數據一致
簡單高效#
我們發現,學習過那麼多的 redis 命令,好像沒什麼命令會報錯,就算你輸入的 key 出錯了,也就是報個 nil
,所以只有你的 redis 命令語法出錯時,才會報錯。
這麼說就沒必要支持回滾了,這樣使得 redis 更加簡單高效