Redis 事物

本文详细介绍了Redis事务的基础操作,包括MULTI、EXEC、DISCARD和WATCH命令的使用方式及实例演示。MULTI用于开启事务,EXEC执行事务队列中的命令,DISCARD清空事务队列并放弃执行事务,而WATCH则监视指定键的状态变化。

MULTI 、 EXEC 、 DISCARD 和 WATCH 是 Redis 事务的基础。

Multi 和 Exec


Multi:开启一个事务,它总是返回 OK 。执行之后, 客户端可以继续向服务器发送任意多条命令, 这些命令不会立即被执行, 而是被放到一个队列中, 当 EXEC 命令被调用时, 所有队列中的命令才会被执行。

另一方面, 通过调用 DISCARD , 客户端可以清空事务队列, 并放弃执行事务。

下面我们试一试这两个命令

以年龄为例:

1.开启事物

2.修改数据

这个时候我们再查看一次年龄,发现还是25,说明事物还没被提交前所有的修改操作都不会生效

3.提交事物

再次查看数据,事务提交后修改操作生效了

 

Watch


 

被 WATCH 的键会被监视,并会发觉这些键是否被改动过了。 如果有至少一个被监视的键在 EXEC 执行之前被修改了, 那么整个事务都会被取消, EXEC 返回空多条批量回复(null multi-bulk reply)来表示事务已经失败。

我们再来举个例子

还是以年龄为例:

当前age是23

1.watch:监视你,接下来age这个数据只能在我这个线程里面操作了,其他地方动了这个数据就会报警

2.开启事物

3.这时候新开一个窗口,修改age

4.回到原先的窗口,现在数据已经被其他线程修改了,我们看下再修改还会有效么

5.提交事务

 

这次的结果不是ok,说明watch监视成功了,我们再看看当前age是多少呢

 

这就是watch的用法

 

Discard


 

当执行 DISCARD 命令时, 事务会被放弃, 事务队列会被清空, 并且客户端会从事务状态中退出:

这个命令比较简单,这里就不做过多的解释了,直接举例子了

 

 

以上就是redis事物的基本操作

转载于:https://www.cnblogs.com/xmzJava/p/8461295.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值