zoukankan      html  css  js  c++  java
  • redis--->事务

    事务

    redis单条命令是保证原子性的,但是redis事务是不保证原子性的

    redis事物本质:是一组命令的集合!一个事务的所有命令都要被序列化,在事务执行过程中,会按照顺序执行!

    一次性,顺序性,排他性(不允许被干扰),执行一系列的命令

    redis事务没有隔离级别的概念

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

    redis事务:

    开启事务(multi)

    命令入队(........)

    执行事务(exec)

    放弃事务(discard)

    编译型异常:(命令有错,代码有问题)事务中所有命令都不会被执行

    运行时异常:其他命令可以正常执行,错误命令抛出异常

    任务队列中有的人错了,依旧可以执行

    redis不保证原子性

    监控!watch

    悲观锁:

    • 无论做什么都会加锁

    乐观锁:

    • 所以不会加锁,判断一下在此期间是否有人修改
    • 获取version
    • 更新的时候比较version

    例:watch   money

    另外一个线程去修改我们的值,这个时候就会导致事务执行失败

    unwatch       解锁

    watch   money      重新加锁

    如果失败重新获取锁

  • 相关阅读:
    ADB常用命令
    Java内部开发框架
    Android开发的十个建议
    通过浏览器访问网站的过程
    CDN的概念和解决的问题
    nginx实现range请求
    Nginx如何重新编译添加模块
    MP4文件在线播放首屏慢的问题
    Ubuntu下添加程序到应用程序
    一致性hash
  • 原文地址:https://www.cnblogs.com/springxian/p/14459949.html
Copyright © 2011-2022 走看看