Redis 事務(wù)
Redis 事務(wù)可以一次執(zhí)行多個(gè)命令贡必, 并且?guī)в幸韵聝蓚€(gè)重要的保證:
事務(wù)是一個(gè)單獨(dú)的隔離操作:事務(wù)中的所有命令都會(huì)序列化俱恶、按順序地執(zhí)行雹嗦。事務(wù)在執(zhí)行的過(guò)程中,不會(huì)被其他客戶端發(fā)送來(lái)的命令請(qǐng)求所打斷合是。
事務(wù)是一個(gè)原子操作:事務(wù)中的命令要么全部被執(zhí)行了罪,要么全部都不執(zhí)行。
一個(gè)事務(wù)從開(kāi)始到執(zhí)行會(huì)經(jīng)歷以下三個(gè)階段:
開(kāi)始事務(wù)聪全。
命令入隊(duì)泊藕。
執(zhí)行事務(wù)。
實(shí)例
以下是一個(gè)事務(wù)的例子难礼, 它先以MULTI開(kāi)始一個(gè)事務(wù)娃圆, 然后將多個(gè)命令入隊(duì)到事務(wù)中, 最后由EXEC命令觸發(fā)事務(wù)蛾茉, 一并執(zhí)行事務(wù)中的所有命令:
Redis 事務(wù)命令
下表列出了 redis 事務(wù)的相關(guān)命令:
1> discard 命令:取消事務(wù)讼呢,放棄執(zhí)行事務(wù)塊內(nèi)的所有命令
格式:DISCARD
2> exec 命令:執(zhí)行所有事務(wù)塊內(nèi)的命令
格式:EXEC
3> multi 命令:標(biāo)記一個(gè)事務(wù)塊的開(kāi)始
格式:MULTI
4> unwatch 命令:取消 WATCH 命令對(duì)所有 key 的監(jiān)視
格式:UNWATCH
5> watch 命令:監(jiān)視一個(gè)(或多個(gè)) key ,如果在事務(wù)執(zhí)行之前這個(gè)(或這些) key 被其他命令所改動(dòng)谦炬,那么事務(wù)將被打斷