Reids事务

文章介绍了Redis的事务机制,包括multi、discard、exec、unwatch和watch命令的使用。通过示例展示了正常执行、放弃事务、错误处理以及乐观锁的概念,强调了watch命令在事务中的监控作用。
摘要由CSDN通过智能技术生成

1.事务

什么时事务:可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其他命令插入,不许加塞
能干嘛:一个队列中,一次性、顺序性、排他性的执行一系列命令
在这里插入图片描述

2.redis事务命令

1.discard 取消事务
2.exec执行所有事务
3.multi标记一个事务块的开始
4.unwatch取消watch 取消watch命令对所有key的监视
5.watch key 【key。。。】监视一个或多个key,如果在事务执行之前这个或这些key被其他命令所改动,那么事务将被打断

2.1正常执行

multi
set k1 v1
set k2 v2 
set k3 v3
incr count
exec

2.2放弃事务

multi
set k1 v11
set k2 v22
set k3 v33
incr count
discard

2.3全体连坐

multi
set k1 v111
set k2 v222
set k3

故意写错语法编译不通过

2.4 冤头债主

multi
set k1 v1111
set k2 v2222
incr count
incr emal
set k3 v3333
exec

第四条命令回执行失败,其他全部成功

2.5watch监控

1.悲观锁,顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据是的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁
2.乐观锁,顾名思义,就是很乐观,每次拿数据的时候都认为别人不会修改,所有不糊上锁,但是在更新时会判断一下在此期间别人有没有区更新这个数据
乐观锁策略:提交版本必须大于记录当前版本才能执行更新
watch是乐观锁

set k1 abc
set balance 100
watch balance
multi
set k1 abc2
set balance 110
exec

在这里插入图片描述一旦执行了exec之前加的监控锁都会被取消掉了
当客服端连接丢失的时候,所有东西都会被取消监视
开启=入队-执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值