欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > Redis 事务

Redis 事务

2024/10/25 16:19:00 来源:https://blog.csdn.net/m0_74064008/article/details/142383642  浏览:    关键词:Redis 事务

1.基本概念:

        Redis 事务(Redis Transactions)允许将一组命令按照顺序执行,并且保证这些命令在事务中要么全部执行成功,要么全部不执行。Redis 通过 MULTIEXECDISCARDWATCH 这些命令实现了事务功能。                

2.四个关键命令:

  • MULTI:标记事务的开始。在调用 MULTI 后,所有接下来的命令都会进入一个队列,等到执行 EXEC 时才会依次执行。

  • EXEC:执行所有在 MULTI 后排队的命令。如果在事务期间有任何错误(如语法错误),该命令会导致整个事务执行失败。

  • DISCARD:取消事务,放弃所有 MULTI 之后排队的命令。

  • WATCH:在事务执行之前监视一个或多个键。如果这些键在事务执行前被修改,则事务不会执行,而是返回空结果(类似乐观锁机制)。

3.示例:

MULTI           # 开始事务
SET key1 value1 # 将 key1 设置为 value1
INCR key2       # 对 key2 执行递增操作
EXEC            # 执行事务

        如果在 MULTI 之后执行命令时有错误,Redis 会记录该错误,但并不会影响后续命令进入队列。只有当执行 EXEC 时,Redis 才会检查是否有语法错误。如果所有命令都合法,Redis 会按顺序执行;否则,整个事务失败。

4.Redis 事务的特性:

  • 原子性:事务中的每个命令是单独执行的,Redis 不保证事务中的命令是原子操作,也就是说,其他客户端可以在事务执行的过程中访问这些数据。它不同于 SQL 数据库的隔离级别,Redis 事务并不具备真正的隔离性。
  • 单一性:在 Redis 事务中,每条命令都会按照顺序执行,但执行过程中其他客户端可以插入命令或修改数据。

5.Redis 的事务模式具备如下特点:

       (1).不保证隔离性;

       (2).无法保证持久性;

       (3).具备了一定的原子性,但不支持回滚

       (4).一致性的概念有分歧,假设在一致性的核心是约束的语意下,Redis 的事务可以保证一致性

6.总结:

        Redis 事务适合用于需要将多个操作捆绑在一起的场景,但需要注意事务并不能保证与 SQL 数据库类似的严格隔离性或回滚特性。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com