memcached cas操作
cas操作解决问题:不同客户端,并发修改某个key对应的数据
原理:用版本号来解决
- 存储tp的值
-
set tp 0 600 9 memcached STORED
-
- 获取tp的值
-
get tp VALUE tp 0 9 memcached END
-
- gets获取token
-
gets tp VALUE tp 0 9 7843 memcached END
说明:get和gets类似,不同在于,gets返回多一个 7843 ,这就是版本号,cas的时候需要带上
-
- 模拟多客户端修改数据
-
set tp 0 600 8 redisred STORED cas tp 0 900 6 7843 hellow EXISTS gets tp VALUE tp 0 8 7844 redisred END
- 第一个set命令修改了数据
- 第二个cas命令,用版本号7843修改数据,失败,返回exist
- 第三个gets命令,发现tp的版本号,变为7844
-