腾讯云分布式缓存数据库 transactions 族

Transactions 族命令用于将多条命令封装为原子性执行单元,适用于库存扣减、账户余额转账等需要批量操作保持原子性的场景。其核心命令按功能可分为以下两类。

相关产品
腾讯云分布式缓存数据库(兼容 Redis) 产品页,含版本规格、价格与购买入口。

一、命令介绍

·事务生命周期控制

·MULTI:标记事务开始,后续命令进入排队状态。

·EXEC:一次性提交并顺序执行事务队列中的所有命令(执行期间不会被其他客户端请求打断)。

·DISCARD:放弃事务,清空已排队的命令。

·乐观锁并发控制

·WATCH:在事务开始前监控一个或多个键,若被监控的键在 EXEC 前被其他客户端修改,则事务自动中止(返回 nil),以此实现 CAS(Compare-And-Swap)乐观锁机制。

·UNWATCH:取消当前连接上所有键的监控。

注意:说明:

注意:与关系型数据库不同,Redis/Valkey 的事务不提供回滚能力。它的原子性仅体现在执行阶段:事务中的命令会打包后一次性执行,执行期间不会被其他客户端的请求打断。如果某条命令执行出错,后续命令仍会继续执行,已执行的操作也不会被撤销。

更多信息请参见 Valkey 产品文档:Transactions 命令组。

二、命令支持概览

·全部5个命令(discard、exec、multi、unwatch、watch)在 Redis 2.8 标准架构及4.0、5.0、6.2、7.0版本、Valkey 8.0、9.0的标准架构与集群架构中均完全支持。

·跨 Slot 限制:Transactions 族命令不存在跨 Slot 访问场景。

三、命令兼容性矩阵

Transactions 族命令在各版本与架构下的支持情况如下表所示(✓ 表示支持,✗ 表示不支持,— 表示该命令不存在跨 Slot 访问场景)。

命令 Valkey 9.0标准架构 Valkey 9.0集群架构 Redis 7.0/Valkey 8.0标准架构 Redis 7.0/Valkey 8.0集群架构 Redis 6.2标准架构 Redis 6.2集群架构 Redis 5.0标准架构 Redis 5.0集群架构 Redis 4.0标准架构 Redis 4.0集群架构 Redis 2.8标准架构 集群架构跨 Slot 支持
discard ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ —
exec ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ —
multi ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ —
unwatch ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ —
watch ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ —
赞 (0)
上一篇 4天前
下一篇 4天前