redis事物transaction

  • 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"
    

    原文地址:https://blog.51cto.com/phpme/2382886

    时间: 2024-10-28 19:00:04

    redis事物transaction的相关文章

    SpringBoot事物Transaction实战讲解教程

    前言 本篇文章主要介绍的是SpringBoot的事物Transaction使用的教程. SpringBoot Transaction 说明:如果想直接获取工程那么可以直接跳到底部,通过链接下载工程代码. Transaction 事务管理方式 在Spring中,事务有两种实现方式,分别是编程式事务管理和声明式事务管理两种方式. 编程式事务管理: 编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager.对于编程式事务管理,spr

    Redis事物特点和持久化方式

    Redis的事物不支持完整的ACID,Redis虽然提供事物功能,但是Redis的事物和关系数据库事务不可同日而语,Redis的事物只能保证隔离性和一致性(I和C),无法保证原子性和持久性(A和D),具体实现原理如下: 原子性 Redis事物不支持原子性,Redis不支持回滚操作,事物中间一条命令执行失败,既不会导致前面已经执行的命令回滚,也不会中断后面的命令的执行. 一致性 Redis事物能够保证事物开始之前和事物结束以后,数据库的完整性没有被破坏 隔离性 Redis不存在多个事物的问题,因为

    redis事物的使用

    redis的几个事物命令: WATCH 监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断:UNWATCH 取消 WATCH 命令对所有 key 的监视:MULTI 标记一个事务块的开始,指事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由EXEC命令原子性(atomic)地执行:DISCARD 取消事务,放弃执行事务块内的所有命令:EXEC 执行所有事务块内的命令: phpredis的实现方式: 事务的调用有两种模式Redis::

    redis 事物

    1正常执行 127.0.0.1:6379> multi     开启事物OK #然后进行相关操作127.0.0.1:6379> set key4 v4QUEUED127.0.0.1:6379> get key2QUEUED #提交127.0.0.1:6379> exec1) OK2) "v2" 2放弃事物127.0.0.1:6379> multiOK127.0.0.1:6379> set key7 eQUEUED127.0.0.1:6379>

    AOD.NET实现数据库事物Transaction

    在开始介绍文章主要内容前先简单说一下事务 1.事务介绍 事务是一种机制.是一种操作序列,它包含了一组数据库操作命令,这组命令要么全部执行,要么全部不执行.因此事务是一个不可分割的工作逻辑单元.在数据库系统上执行并发操作时事务是作为最小的控制单元来使用的.这特别适用于多用户同时操作的数据通信系统. 2.事务使用场景 需要对数据库同时进行多条更新操作时!例如,电商平台的下单付款,银行转账之类的 好了,这里就不对事物进行细说了,想了解更多与事务有关的详细知识可以去园子里搜索哈 执行事务的步骤 1.连接

    redis事物

    Redis 事务参考资料:http://www.runoob.com/redis/redis-transactions.htmlRedis 事务可以一次执行多个命令, 并且带有以下两个重要的保证:事务是一个单独的隔离操作:事务中的所有命令都会序列化.按顺序地执行.事务在执行的过程中,不会被其他客户端发送来的命令请求所打断.事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行.一个事务从开始到执行会经历以下三个阶段:开始事务.命令入队.执行事务.实例以下是一个事务的例子, 它先以 MU

    Redis - 事物控制和发布订阅

    multi命令后续命令将进入队列,不会马上执行,当执行exec后,一次输出所有结果 事物回滚使用discard命令,放弃之前的输入执行. SUBSCRIBE/PUBLISH SUBSCRIBE KEYWORD PUBLISH KEYWORD MESSAGE 主可以publish到从,从无法publish给主,从可以publish给从

    redis事物命令示例

    命令示例: 1. 事务被正常执行:#在Shell命令行下执行Redis的客户端工具./> redis-cli#在当前连接上启动一个新的事务.redis 127.0.0.1:6379>multiOK#执行事务中的第一条命令,从该命令的返回结果可以看出,该命令并没有立即执行,而是存于事务的命令队列.redis 127.0.0.1:6379>incr t1QUEUED#又执行一个新的命令,从结果可以看出,该命令也被存于事务的命令队列.redis 127.0.0.1:6379>incr t

    Redis简明教程

    redis是什么: Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets. redis是开源,BSD许可,高级的key-value存储系统. 可以用来存储字符串,哈希结构,链表,集合,因