重点回顾
- 事务提供了一种将多个命令打包,
然后一次性、有序地执行的机制。
- 多个命令会被入队到事务队列中,
然后按先进先出(FIFO)的顺序执行。
- 事务在执行过程中不会被中断,
当事务队列中的所有命令都被执行完毕之后,
事务才会结束。
- 带有 WATCH 命令的事务会将客户端和被监视的键在数据库的
watched_keys
字典中进行关联,
当键被修改时,
程序会将所有监视被修改键的客户端的 REDIS_DIRTY_CAS
标志打开。
- 只有在客户端的
REDIS_DIRTY_CAS
标志未被打开时,
服务器才会执行客户端提交的事务,
否则的话,
服务器将拒绝执行客户端提交的事务。
- Redis 的事务总是保证 ACID 中的原子性、一致性和隔离性,
当服务器运行在 AOF 持久化模式下,
并且
appendfsync
选项的值为 always
时,
事务也具有耐久性。