Redis事務應用

2021-07-30 07:17:20 字數 526 閱讀 2435

對於redis事務的應用其實需要靈活使用。其實在實際中可以通過watch一些標記位來保證多執行緒下快取與資料庫資料庫的一致性。(我們的系統是分布式快取與資料庫的結合使用,快取需要跟;資料庫的一致性很重要,下面舉例我們應用中的乙個場景:)

1、帳號為acc,為每個acc在快取中增加乙個tag標識。

2、當執行緒一執行方法1前,設定標記位tag。

3、當執行方法2時,將會watch tag,並且比較tag是否發生了修改,如果一旦發生修改,則此次快取操作不將更新,並清空此acc快取。

4、如果tag值達到預期,則提交快取更新,在提交快取這段時間,如果tag發生變換,則redis exec提交時,會返回null,這樣,雖然快取內容更新成功,但根據返回結果,可以即時清除此acc的快取,從而清空了快取的髒資料。

5、通過以上事務保證了快取資料與資料庫資料不一致性的時間很短,甚至可以忽略,因為基本上在ms級別上。

6、我們的應用在快取資料不存在acc的情況下,會嘗試從資料庫讀取,而快取的作用只是緩解我們系統資料庫的壓力,這樣實現,很好的達到了我們的預期效果。

redis事務及鎖應用

redis事務及鎖應用 redis支援簡單的事務 redis與mysql事務的對比 redis mysql 開啟multi start transaction 語句普通命令 普通sql 失敗discard取消 rollback回滾 成功exec commit 注 rollback與discard的區...

Redis事務和鎖的應用詳解

無論是大小專案還是各種系統,相信事務是不容忽視的,下面,我們對redis的事務展開討論。如果你比較熟悉mysql的事務,redis的事務那就很簡單了。我們對redis的事務和mysql的事務進行下比較就能更清楚的了解到redis的事務機制了。通過比較,我們可以清楚的看到redis的事務命令,先看一段...

Redis事務的應用業務場景分析

業務場景 秒殺問題,如何防止最後一件商品不會被多人同時購買。解決方案 setnx lock key value利用setnx命令的返回值特徵,有值則返回設定失敗,無值則返回設定成功。操作完畢之後,通過del鍵值對來釋放鎖。業務場景 依賴分布式鎖的機制,某個使用者獲取到鎖,之後沒來得及釋放就掛了,如果...