专业编程基础技术教程

网站首页 > 基础教程 正文

Redis命令介绍(十五)事务相关命令汇总

ccvgpt 2024-10-10 05:05:42 基础教程 24 ℃

综述

MULTI、EXEC、DISCARD、WATCH命令是Redis实现交易功能的基础。它允许多个命令在同一步原子性地实现。它包含两个特性:1、所有的命令都是有序执行的。2、所有的命令要么都执行,要么都不执行。

当命令本身存在语法错时,交易块不会被执行。当命令执行失败(如key存储数据类型与命令对应数据类型不一致)时,交易块的其余命令仍会执行。

Redis命令介绍(十五)事务相关命令汇总

Redis不支持交易块数据回滚的原因有两点:1、Redis命令仅会在语法错误和数据类型不一致的情况下失败。这两种情况都是编码错误,应能在开发阶段发现。2、Redis内核简单且快速,所以不支持回滚。

WATCH命令用于在Redis交易处理中提供一种乐观锁。WATCH命令可以监控key中存储值的变化情况。当值产生变化时,EXEC命令会执行失败。使用UNWATCH命令可以释放对key的监控。当EXEC命令执行时,所有的监听都会被释放。

WATCH命令相当于为Redis提供了条件语句。只有当所有的值都没有产生变化时,才执行对应语句。在并发情况下,可以用到这个特性。


DISCARD

在MULTI之后输入。放弃之前输入的一系列命令。


EXEC

在MULTI之后输入。原子执行执行之前输入的一系列命令。


MULTI

标记交易块的开始。在之后可以输入一系列的命令,并在EXEC命令之后原子执行。


UNWATCH

不再监听所有被监听的key。如果在EXEC命令或DISCARD命令之后,无需再执行该命令。因为所有监听器都处于失效状态。


WATCH

监听key中存储值的变化。用于EXEC命令判断是否执行。

Tags:

最近发表
标签列表