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