redis 事务 2020-02-16

Redis事务

Redis事务介绍

Redis的事务是通过MULTI,EXEC,DISCARD和WATCH这四个命令来完成的。

Redis的单个命令都是原子性的,所以这里确保事务性的对象是命令集合

Redis将命令集合序列化并确保处于同一事务的命令集合连续且不被打断的执行

Redis不支持回滚操作


相关命令


MULTI

用于标记事务块的开始。

Redis会将后续的命令逐个放入队列中,然后使用EXEC命令原子化地执行这个命令序列。



EXEC

在一个事务中执行所有先前放入队列的命令,然后恢复正常的连接状态



DISCARD

除所有先前在一个事务中放入队列的命令,然后恢复正常的连接状态。


WATCH

当某个事务需要按条件执行时,就要使用这个命令将给定的键设置为受监控的状态。

语法watch key [key…]

注意事项使用该命令可以实现redis的乐观锁


UNWATCH

清除所有先前为一个事务监控的键。


事务失败处理

Redis语法错误(可以理解为编译期错误)

编译期间错误

Redis类型错误(可以理解为运行期错误)

运行期间错误


Redis不支持事务回滚

为什么redis不支持事务回滚

1、大多数事务失败是因为语法错误或者类型错误,这两种错误,在开发阶段都是可以预见的

2.redis为了性能方面就忽略了事务回滚

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容