導(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à)值有需要的朋友可以參考一下希望對大家有所幫助 。

文章插圖
相關(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é)果;失敗: 返回 NULL( Ruby返回 `nil`);DISCARDDISCARD清除事務(wù)中的 commands隊(duì)列恢復(fù)連接狀態(tài) 。如果WATCH在之前被調(diào)用 釋放 監(jiān)測中的 Keysalways OK. Redis事務(wù) MULTI, EXEC, DISCARD and WATCH 是Redis事務(wù)的基礎(chǔ) 。
------MULTI,EXEC,DISCARD才是顯式開啟并控制事務(wù)的常用命令可類比關(guān)系型數(shù)據(jù)庫中的BEGAIN,COMMIT,ROLLBACK(事實(shí)上差距很大);
------WATCH命令的使用是為了解決事務(wù)并發(fā)產(chǎn)生的不可重復(fù)讀和幻讀的問題(簡單理解為給Key加鎖);
用來顯式開啟并控制一個(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)容,希望對您有所幫助:- 互聯(lián)網(wǎng)常識(shí):javascript中string方法有哪些
- 互聯(lián)網(wǎng)常識(shí):mysql8 phpmyadmin密碼登錄失敗怎么辦
- 榮耀Magic4系列詳細(xì)參數(shù)對比 榮耀Magic4系列哪款更值得購買
- 雅姿官網(wǎng)查詢詳細(xì)價(jià)格 安利眼霜產(chǎn)品價(jià)格表
- 互聯(lián)網(wǎng)常識(shí):javascript如何設(shè)置顏色
- 榮耀x20手機(jī)參數(shù)配置詳情 榮耀30參數(shù)詳細(xì)參數(shù)
- 關(guān)于五的文化常識(shí)
- T3出行離職1萬元押金給退嗎
- 居家風(fēng)水常識(shí)
- 解析互聯(lián)網(wǎng)六大商業(yè)模式 互聯(lián)網(wǎng)盈利模式包括哪些模式
