真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

redis事務(wù)的使用示例

這篇文章主要介紹了redis事務(wù)的使用示例,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

我們提供的服務(wù)有:成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、紫云ssl等。為上千余家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的紫云網(wǎng)站制作公司

首先我們來簡單介紹下redis事務(wù)的本質(zhì):

Redis 事務(wù)的本質(zhì)是一組命令的集合。事務(wù)支持一次執(zhí)行多個命令,一個事務(wù)中所有命令都會被序列化。在事務(wù)執(zhí)行過程,會按照順序串行化執(zhí)行隊列中的命令,其他客戶端提交的命令請求不會插入到事務(wù)執(zhí)行命令序列中。

總結(jié)說:redis事務(wù)就是一次性、順序性、排他性的執(zhí)行一個隊列中的一系列命令。

Redis事務(wù)沒有隔離級別的概念:

批量操作在發(fā)送 EXEC 命令前被放入隊列緩存,并不會被實際執(zhí)行,也就不存在事務(wù)內(nèi)的查詢要看到事務(wù)里的更新,事務(wù)外查詢不能看到。

Redis不保證原子性:

Redis中,單條命令是原子性執(zhí)行的,但事務(wù)不保證原子性,且沒有回滾。事務(wù)中任意命令執(zhí)行失敗,其余的命令仍會被執(zhí)行。

Redis事務(wù)的三個階段:

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

Redis事務(wù)相關(guān)命令:

watch key1 key2 ... : 監(jiān)視一或多個key,如果在事務(wù)執(zhí)行之前,被監(jiān)視的key被其他命令改動,則事務(wù)被打斷 ( 類似樂觀鎖 )

multi : 標(biāo)記一個事務(wù)塊的開始( queued )

exec : 執(zhí)行所有事務(wù)塊的命令 ( 一旦執(zhí)行exec后,之前加的監(jiān)控鎖都會被取消掉 ) 

discard : 取消事務(wù),放棄事務(wù)塊中的所有命令

unwatch : 取消watch對所有key的監(jiān)控

Redis事務(wù)使用案例:

(1)正常執(zhí)行

redis事務(wù)的使用示例

(2)放棄事務(wù)

redis事務(wù)的使用示例

(3)若在事務(wù)隊列中存在命令性錯誤(類似于java編譯性錯誤),則執(zhí)行EXEC命令時,所有命令都不會執(zhí)行

redis事務(wù)的使用示例

(4)若在事務(wù)隊列中存在語法性錯誤(類似于java的1/0的運行時異常),則執(zhí)行EXEC命令時,其他正確命令會被執(zhí)行,錯誤命令拋出異常。

redis事務(wù)的使用示例

(5)使用watch

案例一:使用watch檢測balance,事務(wù)期間balance數(shù)據(jù)未變動,事務(wù)執(zhí)行成功

redis事務(wù)的使用示例

案例二:使用watch檢測balance,在開啟事務(wù)后(標(biāo)注1處),在新窗口執(zhí)行標(biāo)注2中的操作,更改balance的值,模擬其他客戶端在事務(wù)執(zhí)行期間更改watch監(jiān)控的數(shù)據(jù),然后再執(zhí)行標(biāo)注1后命令,執(zhí)行EXEC后,事務(wù)未成功執(zhí)行。

redis事務(wù)的使用示例

一但執(zhí)行 EXEC 開啟事務(wù)的執(zhí)行后,無論事務(wù)使用執(zhí)行成功, WARCH 對變量的監(jiān)控都將被取消。

故當(dāng)事務(wù)執(zhí)行失敗后,需重新執(zhí)行WATCH命令對變量進(jìn)行監(jiān)控,并開啟新的事務(wù)進(jìn)行操作。

總結(jié):

watch指令類似于樂觀鎖,在事務(wù)提交時,如果watch監(jiān)控的多個KEY中任何KEY的值已經(jīng)被其他客戶端更改,則使用EXEC執(zhí)行事務(wù)時,事務(wù)隊列將不會被執(zhí)行,同時返回Nullmulti-bulk應(yīng)答以通知調(diào)用者事務(wù)執(zhí)行失敗。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“redis事務(wù)的使用示例”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!


本文題目:redis事務(wù)的使用示例
網(wǎng)站網(wǎng)址:http://weahome.cn/article/jsjgid.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部