【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取消之前加的监控锁
    • 当客户端丢失连接时
相关推荐
Coder_Boy_6 小时前
基于SpringAI的智能平台基座开发-(六)
java·数据库·人工智能·spring·langchain·langchain4j
热爱专研AI的学妹6 小时前
数眼搜索API与博查技术特性深度对比:实时性与数据完整性的核心差异
大数据·开发语言·数据库·人工智能·python
hopsky6 小时前
ShardingSphere功能简介
数据库·sql
talenteddriver6 小时前
mysql: MySQL索引和排序相关名词概念汇总
数据库·mysql
6极地诈唬7 小时前
【PG漫步】DELETE不会改变本地文件的大小,VACUUM也不会
linux·服务器·数据库
MZWeiei7 小时前
Redis持久化机制中的 AOF机制简单介绍
数据库·redis
Elastic 中国社区官方博客8 小时前
Elasticsearch:在 X-mas 吃一些更健康的东西
android·大数据·数据库·人工智能·elasticsearch·搜索引擎·全文检索
酷柚易汛8 小时前
酷柚易汛ERP 2025-12-26系统升级日志
java·前端·数据库·php
wang6021252189 小时前
阿里云存储的一些简要概述
数据库·阿里云·fastapi
小徐Chao努力9 小时前
【Langchain4j-Java AI开发】08-向量嵌入与向量数据库
java·数据库·人工智能