行是知之始,知是行之成。这篇文章主要讲述redis事务相关的知识,希望能为你提供帮助。
redis 事务
Redis的事务允许在一次单独的步骤中执行一组命令,并且能够保证将一个事务中的所有命令序列化,然后按顺序执行;在一个Redis事务中,Redis要么执行其中的所有命令,要么什么都不执行。即Redis的事务要能够保证序列化和原子性。
redis事务只能部分保证原子性
- 如果一组命令,在压入队列过程中发生了错误命令,则本事务中的所有命令都不执行。
- 如果一组命令,在压入队列过程中正常,但是在执行事务队列命令是发生了错误,则只会影响发生错误的命令,不会应县跟其他命令的执行,不能够保证事务的原子性
与事务有关的常用命令
multi标记一个事务的开始
?exec执行事务队列中的所有命令
discard清楚已经加入到命令队列中的命令,并且结束整个事务
watch 监控某key,当事务在执行过程中,此key若发生变化,则次事务放弃;否则,正常执行
unwatch放弃监控所有的key
事务总结
1、单独的隔离操作:事务中的所有命令都会序列化、顺序地执行。事务在执行过程中,不会被其它客户端发来的命令请求所打断,除非使用watch命令监控某些键。
【redis事务】2、不保证事务的原子性:redis同一个事务中如果一条命令执行失败,其后的命令仍然可能会被执行,redis的事务没有回滚。Redis已经在系统内部进行功能简化,这样可以确保更快的运行速度,因为Redis不需要事务回滚的能力。
推荐阅读
- (服务运维)存储类型ftp服务和vsftpd搭建
- 复旦-中电金信智能金融科技联合研究中心第一期学术沙龙圆满成功
- Powershell对象(数据的另一个名称)
- 企业备份系统的灾难准备程度如何?
- (服务运维)NFS服务和共享存储LAMP架构
- 如何在C#中检查线程是否为后台线程()
- 如何使用PHP检查数组是否为空()
- 如何检查给定点位于多边形内部还是外部()
- 如何检查给定数组是否可表示为二叉堆()