liunx篇】 十二. Redis事务 三
中国加油,武汉加油!
篇幅较长,配合目录观看
案例准备
1. Redis事务特点
- redis的事务是使用multi-exec的命令组合,使用它可以提供两个重要保证:
- 事务是一个被隔离的操作,事务中的方法都会被redis进行序列化并按顺序执行,事务在执行的过程中不会被其他客户端的发出的命令所打断。
- 事务是一个原子性操作,它要么全部执行、要么全部不执行。multi到exec命令之间的Redis命令将采取进入队列的形式,直至exec命令的出现,才会一次性发送队列的命令去执行。
2. Redis事务命令
- Multi:开启事务,之后的命令就会进入队列,而不是马上执行
- Exec:提交事务,如果被监听的键没有被修改,则采用提交命令,否则就执行回滚命令
- Discard:回滚事务
- watch key1 [key2]…:监听某些键,当被监听的键在提交事务前被修改,则事务会回滚 (基于乐观锁机制)
- unwatch :取消监听
3. Redis事务基本操作
4. 乐观锁
一个事务对某个属性设置监听,开启事务后对这个属性进行操作,如果在此期间有其他事务对该属性进行了修改,那最后这个事务是执行失败的。
5. 悲观锁
用mysql代替下