Redis作為主流的NoSQL,幾乎成了各大中小型項目技術選型的標配,而我們通常也只是將Redis作為緩存來使用。很少有人知道Redis也有「事務」的概念。

Redis事務支持並不完整

雖說Redis有事務概念,但是它相對於關係型資料庫的事務而言,事務實現的並不完全。Redis中的事務並不是嚴格意義的事務,因為無法保證ACID(原子性、一致性、隔離性、持久性)特性。

Redis中的事務僅是簡單的將一系列命令封裝在一起執行,事務只能取消,而不能進行回滾操作!事務中涉及的多條命令中的一條出現錯誤,並不影響其它命令的正常執行。

Redis事務為什麼不支持回滾?

Redis事務之所以不支持回滾操作是因為Redis中的事務並不是關係型資料庫中所說的事務。Redis事務靠的是命令隊列實現的,Redis中的命令只有在語法錯誤時才會執行失敗,而命令若存在語法錯誤也無法進入事務隊列中,所以可以理解為Redis中的命令不會執行失敗,因此不需要回滾。


綜上,Redis事務並不是嚴格意義上的事務,所以在實際項目中不建議使用Redis事務,沒有必要。

以上就是我的觀點,對於這個問題大家是怎麼看待的呢?歡迎在下方評論區交流 ~ 我是科技領域創作者,十年互聯網從業經驗,歡迎關注我瞭解更多科技知識!


redis是nosql,key-value資料庫,但是存儲的數據key-value鍵值對,一個key對應一個value,儲存成功了就是成功了,失敗了就是失敗了,為什麼會有事務;如果有事務,請放棄redis,他不適合此類業務場景。可以把多個值作為一個value來存。


推薦閱讀:
相關文章