【Redis】事务

Redis事务是一组命令的集合。这组命令顺序化执行而不会被其他命令插入。

Redis事务命令

命令 描述
DISCARD 取消事务,放弃执行
EXEC 执行事务
MULTI 标记事务的开始
UNWATCH 取消WATCH对所有key的监控
WATCH 监控所有key

Redis事务特点

特点 说明
单独的隔离操作 Redis命令执行是单线程的,在执行完事务内所有指令前无法同时执行其他客户端的请求
没有隔离级别的概念 在事务提交前任何指令都不会被实际执行
不保证原子性 不保证所有指令同时成功或者失败,无法执行到一半进行回滚
排他性 Redis会保证一个事务内命令依次执行,不会被其他命令插入

具体的使用方式:

  • 正常执行
    MULTI
    redis语句...
    EXEC
    
  • 放弃执行
    MULTI
    redis语句
    DISCARD
    
  • 发生语法错误
    假设在MULTI...EXEC中的某一条redis语句发生语法错误,则整个事务都不会执行
  • 发生执行错误
    假设在MULTI...EXEC中的redis语句没有语法错误,但是在执行过程中发现了错误,则除了这条语句,其他语句都正常执行。
  • WATCH监控
    Redis使用Watch来提供乐观锁定,类似于CAS,Redis在修改时会检测数据是否被更改,如果更改了则执行失败。手动取消监控锁使用unwatch,自动取消监控锁有两种方式:
    • 执行exec取消之前加的监控锁
    • 当客户端丢失连接时

相关推荐

  1. Redis 事务

    2024-04-14 21:14:01       54 阅读
  2. Redis 事务

    2024-04-14 21:14:01       42 阅读
  3. Redis事务

    2024-04-14 21:14:01       39 阅读
  4. Redis事务

    2024-04-14 21:14:01       39 阅读
  5. redis事务

    2024-04-14 21:14:01       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-14 21:14:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-14 21:14:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-14 21:14:01       82 阅读
  4. Python语言-面向对象

    2024-04-14 21:14:01       91 阅读

热门阅读

  1. 移除元素总结(十九天)

    2024-04-14 21:14:01       41 阅读
  2. 深入理解nginx的userid模块

    2024-04-14 21:14:01       36 阅读
  3. kubeadm部署kubernetes1.29

    2024-04-14 21:14:01       28 阅读
  4. AI Safety与AI Security:探索共同点和差异(上)

    2024-04-14 21:14:01       29 阅读
  5. LeetCode 119. 杨辉三角 II

    2024-04-14 21:14:01       38 阅读
  6. 设计模式: 结构型之组合模式(6)

    2024-04-14 21:14:01       31 阅读
  7. 你的期待薪资是多少

    2024-04-14 21:14:01       43 阅读