• Redis实现乐观锁


    悲观锁:当要对数据库中的一条数据进行修改的时候,为了避免同时被其他人修改,最好的办法就是直接对该数据进行加锁以防止并发。这种借助数据库锁机制,在修改数据之前先锁定,再修改的方式被称之为悲观并发控制。

    悲观锁具有强烈的独占和排他特性。

    乐观锁:乐观锁是相对悲观锁而言的,乐观锁假设数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则返回给用户错误的信息,让用户决定如何去做。乐观锁适用于读操作多的场景,这样可以提高程序的吞吐量。

    正常执行时:

    127.0.0.1:6379> set money 1000
    OK
    127.0.0.1:6379> set pay 0
    OK
    127.0.0.1:6379> watch money
    OK
    127.0.0.1:6379> multi
    OK
    127.0.0.1:6379> decrby money 200
    QUEUED
    127.0.0.1:6379> incrby pay 200
    QUEUED
    127.0.0.1:6379> exec
    1) (integer) 800
    2) (integer) 200
    

     开启两个窗口测试实现乐观锁

     

     

     

     

  • 相关阅读:
    JDBC
    SQL语法(3)
    数据库设计和三大范式
    SQL语法(2)
    SQL语法(1)
    数据库的概念以及MYSQL的安装和卸载
    IO流(下)
    IO流(上)
    bash: javac: command not found...
    R语言绘制地图
  • 原文地址:https://www.cnblogs.com/huige185/p/14207986.html
Copyright © 2020-2023  润新知