ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Redis -----5 事务

2021-04-24 00:00:14  阅读:159  来源: 互联网

标签:事务 Redis 回滚 命令 ----- DISCARD 执行


MULTI、EXEC、DISCARD和WATCH命令是基础能力

1 MULTI

开始事物,将命令放入队列

这个命令的运行格式如下所示:

MULTI

这个命令的返回值是一个简单的字符串,总是OK

2 EXEC

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

如果使用了WATCH命令,那么DISCARD命令就会将当前连接监控的所有键取消监控。

DISCARD
这个命令的返回值是一个简单的字符串,总是OK

3 DISCARD

清除队列的命令,并不是回滚

4 WATCH

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

这个命令的运行格式如下所示:

WATCH key [key …]
这个命令的返回值是一个简单的字符串,总是OK。

对于每个键来说,时间复杂度总是O(1)
watch 命令可以监控一个或多个键,一旦有其中一个键被修改(被删除),后面的事务就不会执行了。监控一直持续到 EXEC 命令

5 UNWATCH

6 事务回滚

1 执行事务命令的时候,在命令入队的时候,Redis 就会检测事务的命令是否正确,如果不正确则会产生错误。无论之前和之后的命令都会被事务所回滚,就变为什么都没有执行。

2 当命令格式正确,而因为操作数据结构引起的错误,则该命令执行出现错误,而其之前和之后的命令都会被正常执行。数据库很不一致。

1 只有当被调用的Redis命令有语法错误时,这条命令才会执行失败(在将这个命令放入事务队列期间,Redis能够发现此类问题),或者对某个键执行不符合其数据类型的操作:实际上,这就意味着只有程序错误才会导致Redis命令执行失败,这种错误很有可能在程序开发期间发现,一般很少在生产环境发现。
2 Redis已经在系统内部进行功能简化,这样可以确保更快的运行速度,因为Redis不需要事务回滚的能力。

标签:事务,Redis,回滚,命令,-----,DISCARD,执行
来源: https://blog.csdn.net/chenyixin121738/article/details/116076257

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有