Redis 知识量:6 - 20 - 96
Redis事务是一个命令的执行队列,它将一系列预定义命令包装成一个整体(一个队列)。当执行时,这些命令会按照添加顺序依次执行,且中间不会被其他客户端发送的命令请求所打断。具体来说,事务具有以下四个基本特征:
原子性:事务中的所有命令都会序列化、按顺序地执行,中间不会被打断或干扰。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。
持久性:一旦事务被定义,其包含的命令就会一直存在,直到事务被执行完毕。
隔离性:事务中的所有命令都会被序列化、按顺序地执行,事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。
一致性:事务将保证数据的一致性状态,即事务开始之前和事务结束以后,数据库都必须保持一致性状态。
Redis的事务操作包括开启事务(MULTI)、执行事务(EXEC)和取消事务(DISCARD)。开启事务(MULTI)的作用是设定事务的开启位置,此指令执行后,后续的所有指令均加入到事务中。执行事务(EXEC)的作用是设定事务的结束位置,同时执行事务。与MULTI成对出现,成对使用。取消事务(DISCARD)的作用是终止当前事务的定义,发生在MULTI之后,EXEC之前。
如果运行过程中出现错误,例如语法错误或运行时错误等,Redis会中止整个事务的执行。此外,Redis不保证原子性,且没有回滚机制。
Redis事务的常用命令包括:
MULTI:标记一个事务块的开始。
EXEC:执行所有事务块内的命令。
DISCARD:清除所有先前在一个事务中放入队列的命令,并且结束事务。
WATCH:当某个事务需要按条件执行时,就使用这个命令将给定的键设置为受监控的。 如果被监控的键值在本事务外有修改时,则本事务所有指令都不会被执行。
UNWATCH:清除所有先前为一个事务监控的键。
以下是一个简单的Redis事务控制的例子:
1. 开启事务:首先,使用MULTI命令开启一个事务。
MULTI
2. 添加命令:接下来,可以添加多个Redis命令到事务队列中。例如,假设想对两个键进行操作,先设置键key1的值为value1,然后将键key2的值为value2。
SET key1 value1 SET key2 value2
3. 执行事务:使用EXEC命令来执行事务中的所有命令。
EXEC
4. 取消事务:如果需要取消事务,可以使用DISCARD命令。
DISCARD
这样,就完成了一个简单的Redis事务控制。
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6