正文
Redis用它的高性能征服了我们,我们一些项目都在使用它来做缓存,实际上Redis是一个基于内存的数据库,他有2种文件的保存形式:AOF、RDB。但是既然是数据库,那么肯定有一定的方法实现一些事务操作。因为在我们平时的业务中,不可能是简单的一个一个的请求,肯定是多个操作一起执行,互相影响。
但是,在Redis执行事务的同时,如果出现错误,会导致redis提前的终止执行事务但是Redis不会全部的回滚之前执行的命令这是为什么呢?我在官网上找到了答案:
大概的意义就是说:
- 仅当使用错误的语法(并且在命令队列期间无法检测到该问题)或针对持有错误数据类型的键调用Redis命令时,Redis命令才会失败:这实际上意味着失败的命令是编程错误的结果, 还有一种很可能在开发过程中而不是生产过程中发现的错误。
- Redis在内部得到了简化和加快,因为它不需要回滚的能力。
一句来说就是,为了简单、方便。大部分的代码以及错误都可以在Redis执行生产命令的时候可以进行避免,所以为了简单方便,它是不支持全部的回滚的设计模式。这也是在提醒大家,在写程序的时候,应该万事具备只欠运行环境。将自己的错误在自己的程序逻辑里面处理掉,防止出现意想不到的错误。