大数据学习之Redis——05事务和监控

1. 概述:

1. 说明
  1. Redis事务本质: 一组命令的集合!

  2. 一个事务的所有命令都会被序列化, 在事务执行过程中, 会按照顺序执行

  3. Redis 事务没有隔离级别的概念

  4. 所有的命令在事务中, 并没有直接被执行, 只有发起执行命令的时候才会被执行

  5. Redis单条命令式保证原子性的, 但是事务不保证原子性

2. 特点
  1. 一次性
  2. 顺序性
  3. 排他性

2. Redis的事务

  1. 开启事务

    MULTI
    
  2. 命令入队

  3. 执行事务

    exec
    

    在这里插入图片描述

  4. 放弃事务

    DISCARD
    

    在这里插入图片描述

3 异常

1. 编译型异常
  1. 代码有问题, 命令有错
  2. 事务中所有的命令都不会被执行
  1. 代码
    在这里插入图片描述
2. 运行时异常

如果事务队列中存在与发行错误, 那么执行命令的时候, 其他命令可以正常执行

  1. 代码
    在这里插入图片描述

4. 监控

1. 悲观锁

很悲观, 认为什么时候都会出问题, 无论做什么都会加锁

2. 乐观锁

很乐观, 认为什么时候都不会出问题, 所以不会上锁.

更新数据的时候会判断一下, 在此期间是否有认为修改过这个数据.

  1. 获取version
  2. 更新的时候比较version
3. 乐观锁案例
  1. 单线程
    在这里插入图片描述
  2. 多线程

    使用watch可以当做Redis的乐观锁操作.

    1. 先监控
      在这里插入图片描述
    2. 插入一个新的线程, 并修改监控的内容
      在这里插入图片描述
    3. 执行事务失败
      在这里插入图片描述
    4. 如果事务执行失败, 则先解锁unwatch, 然后再重新监视watch
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值