网站首页 > 基础教程 正文
综述
MULTI、EXEC、DISCARD、WATCH命令是Redis实现交易功能的基础。它允许多个命令在同一步原子性地实现。它包含两个特性:1、所有的命令都是有序执行的。2、所有的命令要么都执行,要么都不执行。
当命令本身存在语法错时,交易块不会被执行。当命令执行失败(如key存储数据类型与命令对应数据类型不一致)时,交易块的其余命令仍会执行。
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命令判断是否执行。
猜你喜欢
- 2024-10-10 Linux系统常用命令大全 linux系统常用命令大全详解
- 2024-10-10 Redis数据类型与常用指令示例 redis数据类型和用法
- 2024-10-10 深入理解Redis原理与应用,总结10个必定掌握要点,5分钟彻底看懂
- 2024-10-10 sqlserver数据库中的高级知识点有哪些?
- 2024-10-10 程序员的福音 - Apache Commons Exec
- 2024-10-10 Linux常用命令分类详解|文件搜索 linux命令分类总结
- 2024-10-10 linux性能工具perf工作原理简析 linux perl
- 2024-10-10 Python-调用系统命令或脚本,快速完成任务
- 2024-10-10 「Docker」命令使用大全,全集一览
- 2024-10-10 DOS常用命令集合 dos所有命令的命令格式
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)