国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Redis事務(wù)

2019-11-09 13:33:05
字體:
供稿:網(wǎng)友

一、 事務(wù):

與關(guān)系型數(shù)據(jù)庫一樣redis也支持事務(wù)。也就是可以一次執(zhí)行多個命令,本質(zhì)是一組命令的集合。一個事務(wù)中的所有命令都會序列化,按順序地串行化執(zhí)行而不會被其它命令插入,不許加塞。

二、 事務(wù)能干嘛?

一個隊列中,一次性、順序性、排他性的執(zhí)行一系列命令。

三、 redis事務(wù)支持的命令

1、 MULTI:標(biāo)記一個事務(wù)塊的開始。 隨后的指令將在執(zhí)行EXEC時作為一個原子執(zhí)行。

2、 EXEC:執(zhí)行事務(wù)中所有在排隊等待的指令并將鏈接狀態(tài)恢復(fù)到正常 當(dāng)使用WATCH 時,只有當(dāng)被監(jiān)視的鍵沒有被修改,且允許檢查設(shè)定機制時,EXEC會被執(zhí)行。

3、 DISCARD:刷新一個事務(wù)中所有在排隊等待的指令,并且將連接狀態(tài)恢復(fù)到正常。如果已使用WATCH,DISCARD將釋放所有被WATCH的key。

4、 WATCH:標(biāo)記所有指定的key 被監(jiān)視起來,在事務(wù)中有條件的執(zhí)行(樂觀鎖)。

事務(wù)可以一次執(zhí)行多個命令, 并且?guī)в幸韵聝蓚€重要的保證: 事務(wù)是一個單獨的隔離操作:事務(wù)中的所有命令都會序列化、按順序地執(zhí)行。事務(wù)在執(zhí)行的過程中,不會被其他客戶端發(fā)送來的命令請求所打斷。事務(wù)是一個原子操作:事務(wù)中的命令要么全部被執(zhí)行,要么全部都不執(zhí)行。

四、 redis事務(wù)的操作

1、 正常執(zhí)行

這里寫圖片描述 使用MULTI開啟一個事務(wù),每當(dāng)添加一個命令,將該命令加入隊列,使用EXEC命令提交時全部執(zhí)行。

2、 放棄事務(wù)

這里寫圖片描述 使用命令DISCARD取消事務(wù)。

3、 全體連坐

全體連坐的意思就是在一個事務(wù)中有一條語句語法有錯誤就會導(dǎo)致這條事務(wù)全部失效。 這里寫圖片描述 命令出錯,所有的命令失效。

4、 冤頭債主

意思就是在所有的命令均為正確的情況下,其中一條命令沒有拿到數(shù)據(jù),而導(dǎo)致該條數(shù)據(jù)為空,但是其他命令還是會執(zhí)行成功。 這里寫圖片描述 K99不存在,但是其他的命令還是執(zhí)行成功。

5、 WATCH操作

WATCH用于監(jiān)控鍵是否發(fā)生改變。被 WATCH 的鍵會被監(jiān)視,并會發(fā)覺這些鍵是否被改動過了。 如果有至少一個被監(jiān)視的鍵在 EXEC 執(zhí)行之前被修改了, 那么整個事務(wù)都會被取消, EXEC 返回nil-reply來表示事務(wù)已經(jīng)失敗。

悲觀鎖:

每次去拿數(shù)據(jù)的時候都認為別人會修改,所以每次在拿數(shù)據(jù)的時候都會上鎖,這樣別人想拿這個數(shù)據(jù)就會block直到它拿到鎖。傳統(tǒng)的關(guān)系型數(shù)據(jù)庫里邊就用到了很多這種鎖機制,比如行鎖,表鎖等,讀鎖,寫鎖等,都是在做操作之前先上鎖。

樂觀鎖:

每次去拿數(shù)據(jù)的時候都認為別人不會修改,所以不會上鎖,但是在更新的時候會判斷一下在此期間別人有沒有去更新這個數(shù)據(jù),可以使用版本號等機制。樂觀鎖適用于多讀的應(yīng)用類型,這樣可以提高吞吐量。 WATCH使用的是樂觀鎖策略。 一旦執(zhí)行了exec之前加的監(jiān)控鎖都會被取消掉了。或者使用unwatch取消監(jiān)控。

小結(jié)

1、WATCH類似于樂觀鎖,在事務(wù)提交時,如果key的值已被別的客戶端改變,整個事務(wù)隊列都不會執(zhí)行。 2、通過WATCH命令在事務(wù)執(zhí)行之前監(jiān)控了多個keys,若在WATCH之后key的值發(fā)生了變化,EXEC命令執(zhí)行的事務(wù)將被放棄。 3、事務(wù)的三階段 開啟–MULTI,入隊,執(zhí)行-EXEC。 4、事務(wù)的三特性 單獨隔離操作、沒有隔離級別的概念、不保證原子性(執(zhí)行失敗、集體連坐、冤頭債主等)。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 简阳市| 庐江县| 吉木乃县| 城口县| 德安县| 屏东县| 百色市| 什邡市| 福贡县| 南宫市| 永嘉县| 遂平县| 宁都县| 平罗县| 涡阳县| 水富县| 吉安市| 曲阳县| 金溪县| 应城市| 蓬溪县| 扬中市| 寿阳县| 普兰店市| 繁昌县| 固始县| 永丰县| 上栗县| 东至县| 山西省| 麦盖提县| 唐山市| 曲周县| 汶上县| 新津县| 武城县| 宽甸| 浦县| 绵阳市| 常宁市| 遵义市|