Redis深度历险笔记07 Redis事务

Redis事务

  1. Redis事务不是很严格,操作指定有:

    • multi :指示事务的开始
    • exec:指示事务的执行
    • discard:指示丢弃事务缓存队列中所有的指令
  2. 所有的指定在 exec 之前不执行,而是缓存在一个队列中,一旦受到exec指令,才开始执行整个事务队列,执行完毕后一次性返回所有指令的执行结果。

  3. Redis事务可以保证隔离性,但是Redis事务一条执行失败后面的指令还会继续执行,不会进行回滚,所以不能说是原子性的。Redis事务会遇到两种错误:

    • 事务在执行EXEC之前,入队的的命令可能会出错,或者内存不足。
    • 在执行EXEC 调用之后,指令出错,比如列表命令用在了字符串上。
    • 对于EXEC执行之前的错误,Redis会检查出来返回错误并放弃事务,但是对于在EXEC调用后执行失败的情况,其他命令仍会执行。
  4. Redis为什么不支持回滚?

    • Redis认为由于编程造成的错误应该在开发过程中被发现,不应该出现在生产环境中。
    • Redis要保持简单快速。

猜你喜欢

转载自blog.csdn.net/weixin_43338519/article/details/105514538