zoukankan      html  css  js  c++  java
  • 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
    

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

     

     

     

     

  • 相关阅读:
    贪吃蛇大作战游戏攻略
    非对称加密算法RSA
    使用java库中的对称加密算法
    HMAC加密的消息摘要码
    md5和SHA校验码
    拼图可解的充要条件
    Base64编码
    java中文文档官方下载
    JAVA中对字符串的常见处理函数汇总
    测试工程师面试题
  • 原文地址:https://www.cnblogs.com/huige185/p/14207986.html
Copyright © 2011-2022 走看看