redis基本事务操作

本文详细介绍了Redis的事务处理机制,包括如何开启和取消事务,以及在遇到编译型和运行时异常时事务的执行情况。在Redis中,事务不保证原子性,但单个命令具有原子性。示例展示了在事务中遇到错误时,如何导致事务被取消或部分命令执行失败的情况。
摘要由CSDN通过智能技术生成

1.redis事务基本操作

127.0.0.1:6379> multi  	//开启事务
OK
127.0.0.1:6379(TX)> set k1 v1 	//命令入队
QUEUED
127.0.0.1:6379(TX)> set k2 v2	//命令入队
QUEUED
127.0.0.1:6379(TX)> exec	//提交事务

2.取消事务

127.0.0.1:6379> multi  	//开启事务
OK
127.0.0.1:6379(TX)> set k1 v1 	//命令入队
QUEUED
127.0.0.1:6379(TX)> set k2 v2	//命令入队
QUEUED
127.0.0.1:6379(TX)> discard	//取消事务,执行取消事务操作,所有命令			都不执行

3.异常

1.编译型异常

即代码有语法错误,则事务中的所有命令都不会执行;如下:

127.0.0.1:6379> multi 
OK
127.0.0.1:6379(TX)> set k1 v1 
QUEUED
127.0.0.1:6379(TX)> set k2   //明显的语法错误
(error) ERR wrong number of arguments for 'set' command
127.0.0.1:6379(TX)> exec
(error) EXECABORT Transaction discarded because of previous errors.

2.运行时异常

即在运行时出现错误,但语法结构正确,则事务中该命令不会执行,但其他命令会正常执行;如下:

127.0.0.1:6379> multi
OK
127.0.0.1:6379(TX)> incr k1  
QUEUED
127.0.0.1:6379(TX)> set k5 v5
QUEUED
127.0.0.1:6379(TX)> exec
1) (error) ERR value is not an integer or out of range		//k1不是integer类型
2) OK

从运行时异常中也可以看出在redis中事务是不保证原子性的,但其单条命令是可以保证原子性的!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值