千家信息网

redis事物transaction

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,MULTI用于标记事务块的开始。Redis会将后续的命令逐个放入队列中,然后才能使用EXEC命令原子化地执行这个命令序列。这个命令的运行格式如下所示:MULTI这个命令的返回值是一个简单的字符串,总是
千家信息网最后更新 2025年12月03日redis事物transaction
  1. MULTI

    用于标记事务块的开始。Redis会将后续的命令逐个放入队列中,然后才能使用EXEC命令原子化地执行这个命令序列。

这个命令的运行格式如下所示:

MULTI
这个命令的返回值是一个简单的字符串,总是OK。

  1. EXEC

    在一个事务中执行所有先前放入队列的命令,然后恢复正常的连接状态。
    当使用WATCH命令时,只有当受监控的键没有被修改时,EXEC命令才会执行事务中的命令,这种方式利用了检查再设置(CAS)的机制。

这个命令的运行格式如下所示:

EXEC
这个命令的返回值是一个数组,其中的每个元素分别是原子化事务中的每个命令的返回值。 当使用WATCH命令时,如果事务执行中止,那么EXEC命令就会返回一个Null值。

127.0.0.1:6380> multiOK127.0.0.1:6380> xadd myStreamKey * name Jack age 29QUEUED127.0.0.1:6380> xadd myStreamKey * name Jack age 28QUEUED127.0.0.1:6380> xadd myStreamKey * name Jack age 27QUEUED127.0.0.1:6380> xadd myStreamKey * name Jack age 26QUEUED127.0.0.1:6380> xadd myStreamKey * name Jack age 25QUEUED127.0.0.1:6380> xadd myStreamKey * name Jack age 24QUEUED127.0.0.1:6380> xadd myStreamKey * name Jack age 23QUEUED127.0.0.1:6380> xadd myStreamKey * name Jack age 22QUEUED127.0.0.1:6380> xadd myStreamKey * name Jack age 21QUEUED127.0.0.1:6380> xadd myStreamKey * name Jack age 20QUEUED127.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"
0