欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報激活碼778899分享:詳解Redis之事務(wù)

柚子快報激活碼778899分享:詳解Redis之事務(wù)

http://yzkb.51969.com/

目錄

Redis事務(wù)

概念

特性

常用命令

MULTI

EXEC

DISCARD

WATCH

UNWATCH

使用演示

使用場景

注意事項(xiàng)

Redis事務(wù)

概念

Redis事務(wù)和MySQL的事務(wù)在概念上是類似的,都是把一系列操作綁定成一組,讓這一組能夠批量執(zhí)行。但是,Redis事務(wù)和MySQL事務(wù)在特性上有所不同,Redis事務(wù)沒有回滾機(jī)制,只能保證這些操作批量執(zhí)行,不能做到“一個失敗就恢復(fù)到初始狀態(tài)”。

Redis 事務(wù)本質(zhì)上是在服務(wù)器上搞了?個 "事務(wù)隊(duì)列". 每次客?端在事務(wù)中進(jìn)??個操作, 都會把命令先發(fā)給服務(wù)器, 放到 "事務(wù)隊(duì)列" 中(但是并不會?即執(zhí)?) ?是會在真正收到 EXEC 命令之后, 才真正執(zhí)?隊(duì)列中的所有操作.?

特性

1.弱化的原子性: Redis事務(wù)中的所有命令都會序列化、按順序地執(zhí)行,執(zhí)行過程中不會被其他客戶端的命令請求打斷。 但是,Redis事務(wù)沒有回滾機(jī)制。如果事務(wù)中的某個命令執(zhí)行失敗,其他命令仍然會繼續(xù)執(zhí)行,事務(wù)不會因?yàn)橐粋€命令的失敗而回滾到初始狀態(tài)。 2.不保證一致性: 由于Redis事務(wù)沒有回滾機(jī)制,且沒有涉及“約束”,因此事務(wù)執(zhí)行過程中如果某個修改操作出現(xiàn)失敗,就可能引起不一致的情況。 3.不需要隔離性: Redis是單線程處理請求的,因此不需要隔離級別,也不會并發(fā)執(zhí)行事務(wù)。 4.不需要持久性: Redis事務(wù)是保存在內(nèi)存中的,是否開啟持久化是redis-server自己的事情,和事務(wù)無關(guān)。

常用命令

MULTI

功能:開啟一個事務(wù)。 執(zhí)行成功返回OK。當(dāng)開啟事務(wù)后,客戶端可以繼續(xù)向服務(wù)器發(fā)送任意多條命令,這些命令不會立即被執(zhí)行,而是被放到一個隊(duì)列中。當(dāng)EXEC命令被調(diào)用時,所有隊(duì)列中的命令才會被執(zhí)行。

EXEC

功能:真正執(zhí)行事務(wù)。 每次添加一個操作,都會提示“QUEUED”,說明命令已經(jīng)進(jìn)入服務(wù)端的隊(duì)列。當(dāng)執(zhí)行EXEC命令時,服務(wù)器才會真正執(zhí)行這些命令。 EXEC命令的回復(fù)是一個數(shù)組,數(shù)組中的每個元素都是執(zhí)行事務(wù)中的命令所產(chǎn)生的回復(fù)?;貜?fù)元素的先后順序和命令發(fā)送的先后順序一致。

DISCARD

功能:放棄當(dāng)前事務(wù)。 直接清空事務(wù)隊(duì)列,之前的操作都不會真正執(zhí)行。

WATCH

一定要在開啟事務(wù)之前使用?。?!

功能:監(jiān)控一個或多個鍵。 當(dāng)開啟事務(wù)時,如果對WATCH的鍵進(jìn)行修改(在EXEC命令執(zhí)行之前),就會記錄當(dāng)前鍵的“版本號”。在真正提交事務(wù)時(執(zhí)行EXEC命令時),如果發(fā)現(xiàn)當(dāng)前服務(wù)器上的鍵的版本號已經(jīng)超過了事務(wù)開始時的版本號,就會讓事務(wù)執(zhí)行失敗。 WATCH命令本質(zhì)上是給EXEC加了個判定條件,屬于“樂觀鎖”。

UNWATCH

功能:取消對鍵的監(jiān)控。 相當(dāng)于WATCH的逆操作。

使用演示

沒開啟事務(wù),一方修改,另一方能實(shí)時看到

開啟事務(wù),一方修改,另一方看不到,直到事務(wù)執(zhí)行完畢?

開啟事務(wù),一方修改,另一方針對同一Key修改,最終value為執(zhí)行事務(wù)設(shè)置的value?

WATCH只能在開啟事務(wù)前使用?

使用WATCH,開啟事務(wù),在事務(wù)中修改Key之前,Key被修改,在事務(wù)中修改Key,當(dāng)執(zhí)行EXEC會提示(nil),Key的value依舊是另一方設(shè)置的value

使用場景

Redis事務(wù)適用于需要把多個操作打包進(jìn)行的情況。例如,在商品搶購場景中,如果使用Redis事務(wù),可以避免多線程下的線程安全問題。通過Redis事務(wù),可以確保一系列操作(如檢查庫存、扣減庫存等)的原子性執(zhí)行,從而避免數(shù)據(jù)不一致的問題。

注意事項(xiàng)

1.鎖的釋放: 在使用WATCH命令進(jìn)行樂觀鎖控制時,需要注意在事務(wù)執(zhí)行完畢后及時釋放鎖(即取消對鍵的監(jiān)控)。如果忘記釋放鎖或因?yàn)楫惓?dǎo)致鎖無法釋放,則可能會導(dǎo)致死鎖問題。 2.事務(wù)的失敗處理: 由于Redis事務(wù)沒有回滾機(jī)制,因此需要在設(shè)計(jì)業(yè)務(wù)邏輯時考慮到事務(wù)失敗的處理方式。例如,可以通過檢查命令的返回值來判斷命令是否執(zhí)行成功,并采取相應(yīng)的處理措施。 3.避免事務(wù)過大: 如果事務(wù)過大(包含過多的命令),可能會導(dǎo)致Redis服務(wù)器的性能下降。因此,需要合理控制事務(wù)的大小,避免將過多的命令放入一個事務(wù)中執(zhí)行。

柚子快報激活碼778899分享:詳解Redis之事務(wù)

http://yzkb.51969.com/

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/2027129327.html

發(fā)布評論

您暫未設(shè)置收款碼

請?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄