cas命令的作用?
Q:cas命令的功能与replace命令类似,是用于替换已存在的key(键)的value(数据值),区别在于使用cas替换数据时需要多添加一个令牌值(token)参数。
令牌值(token)是什么?
Q:可以理解为key(键)的“版本号”,每次对key(键)的value(数据值)做了修改,都会更新它的token。
实例:
1、创建一个key为test,value为memcached的实例。
2、获取test的token,值为1。
3、使用cas命令不携带token值,报ERROR。
4、使用cas命令携带错误的token值,报EXISTS。
5、使用cas命令携带正确的token值,执行成功。
6、再次获取test的token值,可以看到已经再原来的基础上加1。
总结:只有携带正确的token值才能成功修改数据;cas命令的作用是当不同的客户端同时并发修改某个key对应的数据时,当执行第一个客户端发来的修改命令后会立马更新token,此时由于其它客户端携带的还是旧的token所以都会执行失败,从而解决了并发修改数据的冲突问题。