Redis之坑 Redis與MySQL中事務的區別

2021-09-20 11:32:51 字數 1251 閱讀 4862

redis之坑:redis與mysql中事務的區別

note:該篇討論的只是redis與mysql中事務的區別,並不能統一代表no-sql與關係型sql;

在 mysql 中只有使用了innodb資料庫引擎的資料庫或表才支援事務;

事務使用的目的是統一管理 insert,update,delete, 這些write操作,以此來維護資料完整性。所以下文討論的所有sql語句都是write操作

mysql:redis:redis之坑:理解redis事務 中我們通過模擬mysql的begain,commit,rollback來理解redis的事務命令。但是顯然,它們有著本質區別。

mysql:

redis:

mysql:包含兩種

用 begin, rollback, commit,顯式開啟並控制乙個新的transaction。

執行命令set autocommit=0,用來禁止當前會話自動commit,控制預設開啟的事務

redis:

用 multi, exec, discard,顯式開啟並控制乙個transaction(注意:這裡沒有強調「新的」,因為預設是不會開啟事務的)。

很容易理解,redis與mysql中事務的區別其根本原因就是實現不同方式造成的。

mysql:在mysql中無論是否開啟事務,每乙個sql都會被立即執行並返回執行結果。但是事務開啟後所以,上述**,insertselective 將會被立即賦值(無論是否開啟事務):

insertselective =受影響的行數;
redis:

redis學習之入門(入坑)

由於最近需要用到redis,所以在學習之餘寫寫部落格,養成乙個好的習慣,希望對大家有所幫助。期間如果遇到坑,我會在本欄目中寫出來,便於大家參考。一 安裝 然後解壓 開啟cmd視窗 在cmd中進入到redis解壓的目錄 輸入命令 redis server.exe redis.windows.conf ...

redis事務的坑

最先參考文章 後來發現 redis事務不能使用 transactional標記,刪除方法無法工作,刪不掉。set操作,儲存能生效。嚴重影響了資料一致性。解決方案 redistemplatetrans.multi long removenumber removeset redisgroupkey,re...

Redis 快取的坑

這幾天一直在做redis 快取,中間遇到很多錯誤,把網上的部落格都看一大半了,甚至開始懷疑是springboot 框架有問題出毛病了 對,就是他的錯,誰讓他報我的錯?他先動得手 後來發現是自己太蠢了,寫下來記錄記錄這個差點讓我放棄人生的蠢動作。redis快取的序列化器 網上看了很多的關於序列化的部落...