暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Redis事务为啥不支持全部回滚

两个菜鸟程序猿 2021-11-14
678
Redis用它的高性能征服了我们,我们一些项目都在使用它来做缓存,实际上Redis是一个基于内存的数据库,他有2种文件的保存形式:AOF、RDB。但是既然是数据库,那么肯定有一定的方法实现一些事务操作。因为在我们平时的业务中,不可能是简单的一个一个的请求,肯定是多个操作一起执行,互相影响。



但是,在Redis执行事务的同时,如果出现错误,会导致redis提前的终止执行事务但是Redis不会全部的回滚之前执行的命令这是为什么呢?我在官网上找到了答案:

大概的意义就是说:

  • 仅当使用错误的语法(并且在命令队列期间无法检测到该问题)或针对持有错误数据类型的键调用Redis命令时,Redis命令才会失败:这实际上意味着失败的命令是编程错误的结果, 还有一种很可能在开发过程中而不是生产过程中发现的错误。

  • Redis在内部得到了简化和加快,因为它不需要回滚的能力。

一句来说就是,为了简单、方便。大部分的代码以及错误都可以在Redis执行生产命令的时候可以进行避免,所以为了简单方便,它是不支持全部的回滚的设计模式。
这也是在提醒大家,在写程序的时候,应该万事具备只欠运行环境。将自己的错误在自己的程序逻辑里面处理掉,防止出现意想不到的错误。
具体的解释请点击阅读原文,直接到达Redis的事务的具体的使用方法,以及相关问题的解释。
文章转载自两个菜鸟程序猿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论