1. 程式人生 > >redis事物transaction

redis事物transaction

star watch命令 標記 才會 命令 返回值 分別是 watch add

  • MULTI

    用於標記事務塊的開始。Redis會將後續的命令逐個放入隊列中,然後才能使用EXEC命令原子化地執行這個命令序列。

  • 這個命令的運行格式如下所示:

    MULTI
    這個命令的返回值是一個簡單的字符串,總是OK。

    1. EXEC

      在一個事務中執行所有先前放入隊列的命令,然後恢復正常的連接狀態。
      當使用WATCH命令時,只有當受監控的鍵沒有被修改時,EXEC命令才會執行事務中的命令,這種方式利用了檢查再設置(CAS)的機制。

    這個命令的運行格式如下所示:

    EXEC
    這個命令的返回值是一個數組,其中的每個元素分別是原子化事務中的每個命令的返回值。 當使用WATCH命令時,如果事務執行中止,那麽EXEC命令就會返回一個Null值。

    127.0.0.1:6380> multi
    OK
    127.0.0.1:6380> xadd myStreamKey * name Jack age 29
    QUEUED
    127.0.0.1:6380> xadd myStreamKey * name Jack age 28
    QUEUED
    127.0.0.1:6380> xadd myStreamKey * name Jack age 27
    QUEUED
    127.0.0.1:6380> xadd myStreamKey * name Jack age 26
    QUEUED
    127.0.0.1:6380> xadd myStreamKey * name Jack age 25
    QUEUED
    127.0.0.1:6380> xadd myStreamKey * name Jack age 24
    QUEUED
    127.0.0.1:6380> xadd myStreamKey * name Jack age 23
    QUEUED
    127.0.0.1:6380> xadd myStreamKey * name Jack age 22
    QUEUED
    127.0.0.1:6380> xadd myStreamKey * name Jack age 21
    QUEUED
    127.0.0.1:6380> xadd myStreamKey * name Jack age 20
    QUEUED
    127.0.0.1:6380> exec
     1) "1555926229541-0"
     2) "1555926229541-1"
     3) "1555926229541-2"
     4) "1555926229541-3"
     5) "1555926229541-4"
     6) "1555926229541-5"
     7) "1555926229541-6"
     8) "1555926229541-7"
     9) "1555926229541-8"
    10) "1555926229541-9"
    

    redis事物transaction