Redis 事务与锁

基本操作

复制代码
事务的基本操作
# 开启事务,设定事务的开启位置,此指令执行后,后续的所有指令均加入到事务中
multi

# 取消事务,终止当前事务的定义,发生在 multi 之后,exec 之前
discard

# 执行事务,设定事务的结束位置,同时执行事务。与 multi 成对出现,成对使用
exec
复制代码

加入事务的命令暂时进入到任务队列中,并没有立即执行,只有执行 exec 命令才开始执行。

若加入事务的命令有语法错误,那么队列中所有的命令都不会执行。

若加入事务的命令格式正确,但无法正确的执行。那么能够正确运行的命令会执行,运行错误的命令不会被执行。

已经执行完毕的命令对应的数据不会自动回滚,需要程序员自己在代码中实现回滚。

 

事务工作流程

使用队列实现

 

锁 

# 对 key 添加监视锁(必须在事务之前),在执行 exec 前如果 key 发生了变化,终止事务执行
watch key1 key2

# 取消对所有 key 的监视,执行 exec 后会自动取消
unwatch

 


https://redis.io/topics/transactions

https://redis.io/topics/distlock

posted @   江湖小小白  阅读(114)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
历史上的今天:
2019-03-15 Java Enum
点击右上角即可分享
微信分享提示