事务:把一组数据库放在一起执行,保证操作的原子性,要么同时成功,要么同时失败。
redis的事务:允许把一组redis命令放在一起,进行序列化执行,保证部分原子性。
- multi:用来标记一个事务的开始。
- exec:用来执行事务队列中的所有命令。
- redis事务只能保证部分原子性。若在压入队列过程中发生错误,则本事务所有命令都不执行;若在执行事务时发生错误,不会影响其他命令的执行,不能够保证事务的原子性。
- discard:清除所有已经压入队列中的命令,并且结束事务。
- watch:监控某一个键,当事务在执行过程中,此键的值发生变化,则本事务放弃执行;否则正常执行。类似于乐观锁。
- unwatch:放弃监控某一个键。