mysql數據庫事務,redis事務和mysql事務有什么區別?
mysql事務具有原子性,隔離性,一致性的特點。
redis提供multi, exec,watch來支持事務:
原子性,一致性:
redis保證在multi,exec之間的語句作為一個整體執行,redis在exec后,是無法回滾的,會出現部分成功,部分失敗情況。
隔離性(mysql默認可重復讀:事務中多次讀取同一數據是一致的):
redis的事務類似mysql的串行化隔離界別,執行期間不會亂入其他語句。redis在事務使用樂觀鎖。
redis通過watch來監測數據,在執行exec前,監測的數據被其他人更改會拋出錯誤,取消執行。而exec執行時,redis保證不會插入其他人語句來實現隔離。