Redis 基礎(chǔ)教程之事務(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ù)從開始到執(zhí)行會(huì)經(jīng)歷以下三個(gè)階段:
- 開始事務(wù)。
- 命令入隊(duì)。
- 執(zhí)行事務(wù)。
實(shí)例
以下是一個(gè)事務(wù)的例子, 它先以 MULTI 開始一個(gè)事務(wù), 然后將多個(gè)命令入隊(duì)到事務(wù)中, 最后由 EXEC 命令觸發(fā)事務(wù), 一并執(zhí)行事務(wù)中的所有命令:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
redis 127.0.0.1:6379> MULTI OK redis 127.0.0.1:6379> SET book-name "Mastering C++ in 21 days" QUEUED redis 127.0.0.1:6379> GET book-name QUEUED redis 127.0.0.1:6379> SADD tag "C++" "Programming" "Mastering Series" QUEUED redis 127.0.0.1:6379> SMEMBERS tag QUEUED redis 127.0.0.1:6379> EXEC 1) OK 2) "Mastering C++ in 21 days" 3) (integer) 3 4) 1) "Mastering Series" 2) "C++" 3) "Programming" |
Redis 事務(wù)命令
下表列出了 redis 事務(wù)的相關(guān)命令:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
1 DISCARD 取消事務(wù),放棄執(zhí)行事務(wù)塊內(nèi)的所有命令。 2 EXEC 執(zhí)行所有事務(wù)塊內(nèi)的命令。 3 MULTI 標(biāo)記一個(gè)事務(wù)塊的開始。 4 UNWATCH 取消 WATCH 命令對(duì)所有 key 的監(jiān)視。 5 WATCH key [key ...] 監(jiān)視一個(gè)(或多個(gè)) key ,如果在事務(wù)執(zhí)行之前這個(gè)(或這些) key 被其他命令所改動(dòng),那么事務(wù)將被打斷。 |
以上就是事務(wù)命令的詳解,如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!