Redis 6补充
本片笔记适用于 b站尚硅谷 课程 Redis 6 入门到精通 超详细 教程
- 事物,锁机制
- 事物冲突问题
- redis事物三特性
- 持久化框架
- Redis主从复制
- Redis集群
- Redis应用问题解决
事物,锁机制:
Redis事物:一个单独的隔离操作;事物中所有命令都会序列化,按顺序执行。事物执行过程中不会被其他客户端发送过来的命令请求打断
Redis事物主要作用就是串联多个命令防止别的命令插队
Multi | Exec | discard
输入Multi开启事务,此时被成为组队阶段,输入的命令不会马上执行,而是依次进入命令队列,直到输入Exec后,将命令队列中命令依次执行,组队过程中可以通过discard来放弃组队
错误情况:
- 组队时命令发生错误,事物无法执行Exec后的命令语句,一个都不执行
- 组队时无误,执行时出现部分错误,错误的不执行,其他的执行
为什么需要做成事物:
同一份数据被多处调用时,可能会使得值变得不合理,例如多人登录同一台TB账户购买东西,余额同时读取后再依次修改是不合理的
事务冲突问题:
悲观锁:
每次拿数据时都认为别人会修改,所以每次拿取数据时就上锁,其他人拿数据时就会black(阻塞)直至开锁,牺牲性能换效果
乐观锁:
添加版本信息,仅在修改信息时匹配版本是否一致,一致则成功修改,否则更新数据再执行
WATCH K:
在执行multi之前,先执行watch k监视一个或多个key值,如果在事物执行之前这个key被改动,那么事务将会被打断
Redis事务的三特性:
- 单独的隔离操作:事务中所有命令都会序列化,按顺序执行。事务在执行过程中不会被其他客户端发送的命令请求打断
- 没有隔离级别概念:队列中的命令没有提交之前都不会实际执行,因为事务提交前任何指令都不会执行
- 不保证原子性:事务中如果有一条命令执行失败,其后的命令仍然会被执行,没有回滚
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 IT蛋的个人博客!