redis基本事务操作

Posted 背时的哥哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis基本事务操作相关的知识,希望对你有一定的参考价值。

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中事务是不保证原子性的,但其单条命令是可以保证原子性的!

以上是关于redis基本事务操作的主要内容,如果未能解决你的问题,请参考以下文章

redis基本事务操作

redis基本事务操作

Redis之事务操作

redis6事务和锁机制

redis6事务和锁机制

Redis