zoukankan      html  css  js  c++  java
  • memcached cas操作

    cas操作解决问题:不同客户端,并发修改某个key对应的数据

    原理:用版本号来解决

    1. 存储tp的值
      1. set tp 0 600 9
        memcached
        STORED  
    2. 获取tp的值
      1. get tp
        VALUE tp 0 9
        memcached
        END
    3. gets获取token
      1. gets tp
        VALUE tp 0 9 7843
        memcached
        END
        

          说明:get和gets类似,不同在于,gets返回多一个 7843 ,这就是版本号,cas的时候需要带上

    4. 模拟多客户端修改数据
      1. set tp 0 600 8
        redisred
        STORED
        cas tp 0 900 6 7843
        hellow
        EXISTS
        gets tp
        VALUE tp 0 8 7844
        redisred
        END
        1. 第一个set命令修改了数据
        2. 第二个cas命令,用版本号7843修改数据,失败,返回exist
        3. 第三个gets命令,发现tp的版本号,变为7844
  • 相关阅读:
    km算法
    HDU 1358
    HDU 3746
    CF 432D
    HDU 4725
    14年百度之星资格赛第四题
    AC自动机
    RMQ
    HDU 4635
    HDU 3667
  • 原文地址:https://www.cnblogs.com/maggie94/p/6830820.html
Copyright © 2011-2022 走看看