亚洲精品久久久久久第一页-人妻少妇精彩视品一区二区三区-91国产自拍免费视频-免费一级a在线播放视频正片-少妇天天日天天射天天爽-国产大屁股喷水视频在线观看-操美女骚穴抽插性爱视频-亚洲 欧美 中文字幕 丝袜-成人免费无码片在线观看

互聯(lián)網(wǎng)常識(shí):詳細(xì)了解Redis中的事務(wù)

導(dǎo)讀跟大家講解下有關(guān)詳細(xì)了解Redis中的事務(wù),相信小伙伴們對這個(gè)話題應(yīng)該也很關(guān)注吧,現(xiàn)在就為小伙伴們說說詳細(xì)了解Redis中的事務(wù),小編也
跟大家講解下有關(guān)詳細(xì)了解Redis中的事務(wù),相信小伙伴們對這個(gè)話題應(yīng)該也很關(guān)注吧,現(xiàn)在就為小伙伴們說說詳細(xì)了解Redis中的事務(wù),小編也收集到了有關(guān)詳細(xì)了解Redis中的事務(wù)的相關(guān)資料,希望大家看到了會(huì)喜歡 。
本篇文章帶大家詳細(xì)了解一下Redis中的事務(wù) 。有一定的參考價(jià)值有需要的朋友可以參考一下希望對大家有所幫助 。

互聯(lián)網(wǎng)常識(shí):詳細(xì)了解Redis中的事務(wù)

文章插圖

相關(guān)命令命令格式作用返回結(jié)果WATCHWATCH key [key ...]將給出的 Keys標(biāo)記為 監(jiān)測態(tài)作為事務(wù)執(zhí)行的條件always OK.UNWATCHUNWATCH清除事務(wù)中 Keys監(jiān)測態(tài)如果調(diào)用了EXEC or DISCARD則沒有必要再手動(dòng)調(diào)用UNWATCHalways OK.MULTIMULTI 顯式開啟 redis事務(wù)后續(xù) commands將排隊(duì)等候使用EXEC進(jìn)行原子執(zhí)行always OK.EXECEXEC執(zhí)行事務(wù)中的 commands隊(duì)列恢復(fù)連接狀態(tài) 。如果WATCH在之前被調(diào)用只有 監(jiān)測中的 Keys沒有被修改命令才會(huì)被執(zhí)行否則停止執(zhí)行(詳見下文 CAS機(jī)制)成功: 返回?cái)?shù)組 —— 每個(gè)元素對應(yīng)著原子事務(wù)中一個(gè) command的返回結(jié)果;失敗: 返回 NULLRuby返回 `nil`);DISCARDDISCARD清除事務(wù)中的 commands隊(duì)列恢復(fù)連接狀態(tài) 。如果WATCH在之前被調(diào)用 釋放 監(jiān)測中的 Keysalways OK.

------MULTI,EXEC,DISCARD才是顯式開啟并控制事務(wù)的常用命令可類比關(guān)系型數(shù)據(jù)庫中的BEGAIN,COMMIT,ROLLBACK(事實(shí)上差距很大);
------WATCH命令的使用是為了解決事務(wù)并發(fā)產(chǎn)生的不可重復(fù)讀幻讀的問題(簡單理解為給Key加鎖);
Redis事務(wù) MULTI, EXEC, DISCARD and WATCH 是Redis事務(wù)的基礎(chǔ) 。用來顯式開啟并控制一個(gè)事務(wù)它們允許在一個(gè)步驟中執(zhí)行一組命令 。并提供兩個(gè)重要的保證:
事務(wù)中的所有命令都會(huì)被序列化并按順序執(zhí)行 。在執(zhí)行Redis事務(wù)的過程中不會(huì)出現(xiàn)由另一個(gè)客戶端發(fā)出的請求 。這保證 命令隊(duì)列作為一個(gè)單獨(dú)的原子操作被執(zhí)行 。隊(duì)列中的命令要么全部被處理要么全部被忽略 。EXEC命令觸發(fā)事務(wù)中所有命令的執(zhí)行因此當(dāng)客戶端在事務(wù)上下文中失去與服務(wù)器的連接如果發(fā)生在調(diào)用MULTI命令之前則不執(zhí)行任何 commands;如果在此之前EXEC命令被調(diào)用則所有的 commands都被執(zhí)行 。同時(shí)redis使用AOF(append-only file)使用一個(gè)額外的write操作將事務(wù)寫入磁盤 。如果發(fā)生宕機(jī)進(jìn)程奔潰等情況可以使用redis-check-aof tool 修復(fù)append-only file使服務(wù)正常啟動(dòng)并恢復(fù)部分操作 。
用法 使用MULTI命令顯式開啟Redis事務(wù) 。該命令總是以O(shè)K回應(yīng) 。此時(shí)用戶可以發(fā)出多個(gè)命令Redis不會(huì)執(zhí)行這些命令而是將它們排隊(duì) 。EXEC被調(diào)用后所有的命令都會(huì)被執(zhí)行 。而調(diào)用DISCARD可以清除事務(wù)中的commands隊(duì)列退出事務(wù) 。
以下示例以原子方式遞增鍵foo和bar 。>MULTIOK>INCR fooQUEUED>INCR barQUEUED>EXEC1)(整數(shù))12)(整數(shù))1 從上面的命令執(zhí)行中可以看出


以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時(shí)就醫(yī)或請專業(yè)人士給予相關(guān)指導(dǎo)!

「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助: