日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redis——事务

發(fā)布時間:2023/12/15 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis——事务 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Redis事務(wù)

Q:是什么?

A:可以一次執(zhí)行多個命令,本質(zhì)是一組命令的集合。一個事務(wù)中的所有命令都會序列化,按順序地串行化執(zhí)行而不會被其他命令插入。

Q:相關(guān)命令?

A:

DISCARD取消事務(wù),放棄執(zhí)行事務(wù)塊內(nèi)地所有命令
EXEC執(zhí)行所有事務(wù)塊內(nèi)的命令
MULTI標(biāo)記一個事務(wù)塊的開始
UNWATCH取消WATCH命令對所有key的監(jiān)視
WATCH key [key ...]監(jiān)視一個(或多個)key,如果在事務(wù)執(zhí)行之前這個(或這些)key被其他命令所改動,那么事務(wù)將被打斷

?

?

?

?

?

?

?

?

Q:經(jīng)歷階段?

A:

  • 開始事務(wù)
  • 命令入隊
  • 執(zhí)行事務(wù)

?

實例

  • 正常執(zhí)行

  • ?放棄事務(wù)

在事務(wù)開啟前設(shè)置k1的值為11,開啟后再次設(shè)置k1,將其值改為kk,放棄事務(wù)后取k1值為11。

  • 全體連坐

若是在事務(wù)中直接報錯的話,那整個事務(wù)中的操作都將失敗。

  • 冤頭債主

誰錯找誰,其他正常執(zhí)行。

watch監(jiān)控

在此之前先介紹一下悲觀鎖與樂觀鎖

悲觀鎖:顧名思義,就是很悲觀,每次去拿數(shù)據(jù)的時候都認(rèn)為別人會修改,所以每次在拿數(shù)據(jù)的時候都會上鎖,這樣別人想拿這個數(shù)據(jù)就會block直到它拿到鎖。

樂觀鎖:顧名思義,就是很樂觀,每次去拿數(shù)據(jù)的時候都認(rèn)為別人不會修改,所以不會上鎖,但是在更新的時候會判斷一下在此期間別人有沒有去更新這個數(shù)據(jù),可以使用版本號等機(jī)制。

實例

設(shè)置余額為100,支出為0,監(jiān)控余額,開啟事務(wù),余額減少10,支出增加10,執(zhí)行事務(wù)后結(jié)果如上。

注:一旦執(zhí)行了exec那之前加的監(jiān)控鎖都會被取消掉。

But

你對余額監(jiān)控后有人又對你的余額進(jìn)行了修改,腫么辦???

你會看到事務(wù)執(zhí)行后并沒有成功,獲取balance為修改后的500,支出也還是原來的10。此時unwatch就派上用場了,如果在你watch之后有人修改了你的數(shù)據(jù),那你就unwatch,此時的數(shù)據(jù)為最新的數(shù)據(jù),當(dāng)然你以使用別人修改后的數(shù)據(jù),也可以自己重新修改數(shù)據(jù)。(本文使用的是別人修改后的數(shù)據(jù))

?

最后,大家還是自己動手練練。

轉(zhuǎn)載于:https://www.cnblogs.com/rabbitli/p/10988891.html

總結(jié)

以上是生活随笔為你收集整理的Redis——事务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。