为什么 Redis 不支持回滚(roll back)

如果你有使用关系式数据库的经验, 那么 “Redis 在事务失败时不进行回滚,而是继续执行余下的命令”这种做法可能会让你觉得有点奇怪。

以下是这种做法的优点:

  • Redis 命令只会因为错误的语法而失败(并且这些问题不能在入队时发现),或是命令用在了错误类型的键上面:这也就是说,从实用性的角度来说,失败的命令是由编程错误造成的,而这些错误应该在开发的过程中被发现,而不应该出现在生产环境中。
  • 因为不需要对回滚进行支持,所以 Redis 的内部可以保持简单且快速。

有种观点认为 Redis 处理事务的做法会产生 bug , 然而需要注意的是, 在通常情况下, 回滚并不能解决编程错误带来的问题。 举个例子, 如果你本来想通过 INCR 命令将键的值加上 1 , 却不小心加上了 2 , 又或者对错误类型的键执行了 INCR , 回滚是没有办法处理这些情况的。

为什么 Redis 不支持回滚(roll back)相关推荐

  1. Redis事务能回滚吗?

    什么是redis? Redis 是一个开源的,内存中的数据结构存储系统. 可以用作数据库.缓存和消息中间件. 什么是事务? 事务是数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作: 这 ...

  2. php redis事务回滚,【Redis】Redis事务详解,Redis事务不支持回滚吗?

    1.redis事物参考:https://baijiahao.baidu.com/s?id=1613631210471699441&wfr=spider&for=pc (php操作red ...

  3. 腾讯二面:Redis 事务支持 ACID 么?

    ❝ 腾讯面试官:「数据库事务机制了解么?」 「内心独白:小意思,不就 ACID 嘛,转眼一想,我面试的可是技术专家,不会这么简单的问题吧」 程许远:「balabala-- 极其自信且从容淡定的说了一通 ...

  4. Redis事务控制|相关命令|队列失败两种情况|官方解释无回滚|悲观锁和乐观锁简单介绍

    相关命令 命令队列执行失败的两种情况 1.执行队列时失败:错误在入队时检测不出来,整个队列执行时有错的命令执行失败,但是其他命令并没有回滚. 加入队列时失败:遇到了入队时即可检测到的错误,整个队列都不 ...

  5. SpringBoot 异常回滚 事务的使用___Springboot @Transactional 事务不回滚

    Springboot中事务的使用: 1.启动类加上@EnableTransactionManagement注解,开启事务支持(其实默认是开启的). 2.在使用事务的public(只有public支持事 ...

  6. php myisam,php+mysql怎么实现事务回滚,表是MyISAM类型的?

    MyISAM不支持事务,但如果遇到数据库错误,怎么实现回滚?例如: 一段程序要先插入a表,然后再插入b表. 逻辑如下行不行: aResut=doInsertA if(aResut){ bResult= ...

  7. Redis事务,ACID性质,但是Redis不支持事务回滚

    ACID性质 1.原子性 事物具有原子性指的是,数据库将事务中的多个操作当做一个整体来执行,服务器要么执行事务中的所有操作,要么就一个操作也不执行. 对于Redis的事务功能来说,事务队列中的命令要么 ...

  8. mysql 事务回滚_简短截说阐述redis中事务的使用

    我们知道,在关系型数据库中,比如mysql,如果要使用事务,首先向数据库服务器发送 BEGIN ,然后执行各个相互一致的写操作和读操作,最后,用户可以选择发送 COMMIT 来确认之前所做的修改,或者 ...

  9. redis事务不具有回滚机制,那么它是如何进行事务控制的

    redis事务 任何数据库都要有一套自己的事务控制机制,redis事务是一次可以执行多个命令,它的本质是一组命令的集合.一个事务中所有的命令都会被序列化,在事务执行的过程中会按照顺序执行队列中的命令. ...

最新文章

  1. 不允许 ASSIGNMENT 语句中包含 FOR XML 子句。
  2. express的app.js的详细配置说明
  3. Kubernetes 与 OpenYurt 无缝转换(命令式)
  4. javaweb网关_Java网关服务-AIO(三)
  5. 在硒中按TagName定位元素
  6. LeetCode 275. H指数 II(二分查找)
  7. visual studio 按钮判断管理员和用户_用户管理的设计原则
  8. Zookeeper UI管理界面安装
  9. QQ邮箱怎么发送文件夹 怎样在QQ邮箱里发送压缩文件夹
  10. 产品不简单之产品设计方法论整理
  11. JS总是带有一种神奇的魔力
  12. Leetcode每日一题:172.factorial-trailing-zeroes(阶乘后的0)
  13. DataTable克隆行
  14. Ubuntu系统安装JDK教程
  15. 玩转STM32(4)学会目录分类
  16. itextword加公章 java_新手如何使用itext7生成pdf盖章
  17. 测试小故事74:没有计划的日子
  18. mysql事务排队情况_MySQL事务问题
  19. win10电脑字体突然变得模糊,很细
  20. 为什么美国学生学的数学比我们简单,却能做出很牛逼的东西?

热门文章

  1. 《史蒂夫·乔布斯传》官方正式中文版电子书
  2. tomcat 启动有报错,但是很快就自动关闭了,太快了看不到信息,解决方法
  3. springboot身体健康诊疗系统毕业设计源码181049
  4. NAT 网络地址转换 eigrp ospf 路由重分布 DHCP
  5. mysql 配置定时任务_Mysql定时任务
  6. MySQL系统库之mysql
  7. 【解决方案】智能安防监控EasyCVR视频融合平台在棋牌室、洗浴中心等行业的应用
  8. 微信小程序实战通:小程序结合flask后台实现身份证智能识别
  9. 一文彻底搞懂执行上下文、VO、AO、Scope、[[scope]]、作用域链、闭包
  10. 【前端学习笔记】(五)(CSS布局 盒子模型)