Redis-事务操作和乐观锁-04
事务
redis单条命令保证原子性,但是事务不保证原子性
redis事务本质:一组命令的集合,一个事务的所有命令都会被序列化,这事务执行古城中,会按照顺序执行
redis事务没有隔离级别概念
事务:
- 开启事务multi
- 命令入队
- 执行事务exec
放弃事务:discard
如果事务队列存在命令错误,事务其他命令不会执行
如果事务队列中执行时出现异常,其他命令可以正常运行
redis实现乐观锁
悲观锁:认为什么时候都会出问题,无论做什么都会加锁
乐观锁:认为什么时候都不会出问题,不会上锁,更新数据的时候去判断一下,此期间时候有人修改过这个数据,获取version,更新的时候比较version
watch
multi
exec
失败要unwatch
流程:
unwatch key 废弃监听
watch key 开启监听
multi 开始事务
exec 执行事务