Skip to main content
 首页 » 数据库

Redis事务命令介绍

2022年07月19日136kerrycode

Redis事务命令介绍

Redis基础命令在数据管理中扮演重要角色,Redis命令被设计为原子的,即Redis事务使用全由或全无命题,即一组命令要么都执行要么都不执行,一旦执行不会受其他事物干扰。因此了解事务的基本命令是简化工作量的关键,本文带你了解如何使用Redis命令。

1. Redis的事务命令

我们先介绍下Redis与事务相关的基础命令及功能:

  • MULTI - 事务块的开始
  • EXEC - 执行队列命令的信号,命令执行后返回正常状态
  • DISCARD - 一旦执行完成清理队列中的命令,然后返回正常状态

MULTI, EXEC, DISCARD是按顺序发生。如果事务失败,那么整个过程中止,因此事务作为单序列方式执行。

2. 事务命令示例

首先创建两个建:

127.0.0.1:6379> SET int1 15 
OK 
127.0.0.1:6379> SET int2 20 
OK 

执行MULTI命令,启动Redis事务

127.0.0.1:6379> MULTI 
OK 

服务器返回ok,下面执行下面两条命令:

127.0.0.1:6379> INCR int1 
QUEUED 
127.0.0.1:6379> INCRBY int2 100 
QUEUED 

其返回Queued表示命令执行进入队列并没有执行。

我们可以在新的命令行执行下面命令进行验证:

127.0.0.1:6379> GET int1 
"15" 
127.0.0.1:6379> GET int2 
"20" 

注意:Redis使用一个称为隔离进程来确保服务器执行命令不会中断。这就是为什么输入的第一组命令没有更改。

接下来使用exec命令执行事务,无需任何参数,因为队列已经存在。

127.0.0.1:6379> EXEC 
1) (integer) 16 
2) (integer) 120 

注意:如果使用Redis事务收到错误请检查命令的准确性。如果在Exec之前收到错误,验证参数及命令名称以及服务器内存限制。如果在Exec命令之后收到错误,请确认键值以及调用的操作。

另外如果想取消操作可使用DISCARD命令。

  • 使用MULTI命令开始
  • 执行命令incr
  • 使用discard取消命令
127.0.0.1:6379> MULTI 
OK 
127.0.0.1:6379> INCR int 
QUEUED 
127.0.0.1:6379> INCR int2 
QUEUED 
127.0.0.1:6379> DISCARD 
OK 

上面代码显示Redis事务被成功取消,因为DISCARD返回OK,再次使用get命令确认结果:

127.0.0.1:6379> GET int1 
"16" 
127.0.0.1:6379> GET int2 
"120" 

3. 总结

Redis事务

Redis事务只是其众多功能之一,在不受其他事务干扰情况下连续执行一系列命令是Redis中常用实现方式。事务序列的主要三个事务命令:MULTI、EXEC和DISCARD必不可少。


本文参考链接:https://blog.csdn.net/neweastsun/article/details/106872266