Redis事务
2021/7/14 19:05:53
本文主要是介绍Redis事务,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1. redis事务概念:
可以一次执行多个命令,本质是一组命令的集合。 一个事务中的所有命令都会序列化,按顺序串行化执行而不会被其它命令插入,一次性、顺序性、排他性的执行一系列命令。
2. 5个常用命令:
【1】MULTI: 标记一个事务块的开始 【2】EXEC: 执行事务块中所有的命令 【3】DISCARD: 取消事务,放弃执行事务块内的所有命令 【4】WATCH key[key ...]: 监视一个(或多个)key,如果在事务执行过程中这个key被修改了(如果 exec 返回的结果是 nil 时,表示 watch 监控的对象在事务执行的过程中被修改了),那么事务将被打断,终止执行 watch 命令只能在客户端开启事务之前执行,在事务中执行 watch 命令会引发错误,但不会造成整个事务失败 【5】UNWATCH: 取消之前WATCH命令监视的所有key 事务之前watch监视k, 开始事务, unwatch, 设置k值, exec执行事务 即使在事务的执行过程中,k 值被修改了,因为调用了 unwatch 命令,整个事务依然会顺利执行
3. 4种执行情况:
【1】正常执行 【2】放弃事务 【3】全体连坐(命令中含有语法错误的,均连坐(全部失败)) 【4】冤有头,债有主(运行时错误,非语法错误,命令正确的语句正常执行,错误语句返回错误)
4. 执行的3个阶段:
【1】开启:以MULTI开始一个事务 【2】入队:将多个命令入队到事务中,接到这些命令并不会立即执行,而是放到等待执行的事务队列里面 【3】执行:由EXEC命令触发事务
5. Redis事务3个特性:
【1】单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。 【2】没有隔离级别的概念:队列中的命令没有提交之前都不会实际的被执行,因为事务提交前任何指令都不会被实际执行,也就不存在 ”事务内的查询要看到事务里的更新,在事务外查询不能看到” 这个让人万分头痛的问题。 【3】不保证原子性:redis 同一个事务中如果有一条命令执行失败,其后的命令仍然会被执行,没有回滚。
这篇关于Redis事务的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-07Redis高并发入门详解
- 2024-12-07Redis缓存入门:新手必读指南
- 2024-12-07Redis缓存入门:新手必读教程
- 2024-12-07Redis入门:新手必备的简单教程
- 2024-12-07Redis入门:新手必读的简单教程
- 2024-12-06Redis入门教程:从安装到基本操作
- 2024-12-06Redis缓存入门教程:轻松掌握缓存技巧
- 2024-12-04Redis入门:简单教程详解
- 2024-11-29Redis开发入门教程:从零开始学习Redis
- 2024-11-27Redis入门指南:快速掌握Redis基础操作