Redis——事务
仅作为笔记,码字不易,转载请标明出处。
前言
仅作为笔记
一、重点简述
由于我的其他文章写了关于MySql数据库的事务,两者在定义和特性方面几乎一致,所以不再详细介绍。
- 事务提供了一种将多个命令打包,然后一次性、有序地执行的机制。
- 多个命令会被入队列,然后按照先进先出的顺序执行。
- 事务在执行的过程中不会被中断,当事务队列中的所有命令都被执行完毕之后,事务才会结束。
- 带有WATCH命令的事务会将客户端和被监视的键在数据库的watched_keys字典中进行关联,当键被修改时,程序会将所有监视被修改键的客户端的REDIS_DIRTY_CAS标志打开。
- 只有在客户端的REDIS_DIRTY_CAS标志没有被打开时,服务器才会执行客户端提交的事务,否则的话,服务器将拒绝执行客户端提交的事务。
- Redis的事务总是具有ACID中的原子性、一致性和隔离性,当服务器运行在AOF持久化模式下,并且appendfsync选项的值为always时事务才具有耐久性(持久性)。
二、注意事项
Redis和MySql事务有大量相同的地方但是也有大量不同的地方。不同点如下图: