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 @ 2021-03-15 01:40  江湖小小白  阅读(110)  评论(0编辑  收藏  举报