redis事务

行是知之始,知是行之成。这篇文章主要讲述redis事务相关的知识,希望能为你提供帮助。
redis 事务

Redis的事务允许在一次单独的步骤中执行一组命令,并且能够保证将一个事务中的所有命令序列化,然后按顺序执行;在一个Redis事务中,Redis要么执行其中的所有命令,要么什么都不执行。即Redis的事务要能够保证序列化和原子性。
redis事务只能部分保证原子性

  • 如果一组命令,在压入队列过程中发生了错误命令,则本事务中的所有命令都不执行。

  • 如果一组命令,在压入队列过程中正常,但是在执行事务队列命令是发生了错误,则只会影响发生错误的命令,不会应县跟其他命令的执行,不能够保证事务的原子性



与事务有关的常用命令
multi标记一个事务的开始
?exec执行事务队列中的所有命令
discard清楚已经加入到命令队列中的命令,并且结束整个事务
watch 监控某key,当事务在执行过程中,此key若发生变化,则次事务放弃;否则,正常执行

unwatch放弃监控所有的key


事务总结
1、单独的隔离操作:事务中的所有命令都会序列化、顺序地执行。事务在执行过程中,不会被其它客户端发来的命令请求所打断,除非使用watch命令监控某些键。
【redis事务】2、不保证事务的原子性:redis同一个事务中如果一条命令执行失败,其后的命令仍然可能会被执行,redis的事务没有回滚。Redis已经在系统内部进行功能简化,这样可以确保更快的运行速度,因为Redis不需要事务回滚的能力。

    推荐阅读