redis中能不能支持回滚

48次阅读
没有评论

共计 768 个字符,预计需要花费 2 分钟才能阅读完成。

自动写代码机器人,免费开通

丸趣 TV 小编给大家分享一下 redis 中能不能支持回滚,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!

如果你具备关系型数据库的知识背景,你就会发现一个事实:在事务运行期间,虽然 Redis 命令可能会执行失败,但是 Redis 仍然会执行事务中余下的其他命令,而不会执行回滚操作,你可能会觉得这种行为很奇怪。

然而,这种行为也有其合理之处:

只有当被调用的 Redis 命令有语法错误时,这条命令才会执行失败(在将这个命令放入事务队列期间,Redis 能够发现此类问题),或者对某个键执行不符合其数据类型的操作:实际上,这就意味着只有程序错误才会导致 Redis 命令执行失败,这种错误很有可能在程序开发期间发现,一般很少在生产环境发现。

Redis 已经在系统内部进行功能简化,这样可以确保更快的运行速度,因为 Redis 不需要事务回滚的能力。

对于 Redis 事务的这种行为,有一个普遍的反对观点,那就是程序有可能会有缺陷(bug)。但是,你应当注意到:事务回滚并不能解决任何程序错误。

例如,如果某个查询会将一个键的值递增 2,而不是 1,或者递增错误的键,那么事务回滚机制是没有办法解决这些程序问题的。请注意,没有人能解决程序员自己的错误,这种错误可能会导致 Redis 命令执行失败。正因为这些程序错误不大可能会进入生产环境,所以我们在开发 Redis 时选用更加简单和快速的方法,没有实现错误回滚的功能。

简言之,鉴于没有任何机制能避免程序员自己造成的错误,并且这类错误通常不会在生产环境中出现,所以 Redis 选择了更简单、更快速的无回滚方式来处理事务。

看完了这篇文章,相信你对 redis 中能不能支持回滚有了一定的了解,想了解更多相关知识,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2024-02-03发表,共计768字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)