炫意html5
最早CSS3和HTML5移动技术网站之一

Memcached CAS 命令

TelnetCAS命令

CAS代表“检查并设置”或“比较并交换”。如果自上次获取以来未更新数据,则使用Memcached CAS命令设置数据。如果该键在Memcached中不存在,则返回NOT_FOUND。
Memcached CAS命令的基本语法如下所示-

set key flags exptime bytes unique_cas_key [noreply]
value

语法中的关键字如下所述-
  • key-它是键的名称,通过它存储和从Memcached检索数据。
  • flags-它是服务器与用户提供的数据一起存储的32位无符号整数,并在检索到项目时随数据一起返回。
  • exptime-它是到期时间,以秒为单位。0表示没有延迟。如果exptime超过30天,则Memcached会将其用作UNIX时间戳记进行过期。
  • bytes-这是数据块中需要存储的字节数。这是需要存储在Memcached中的数据的长度。
  • unique_cas_key-这是从gets命令获取的唯一密钥。
  • noreply(可选) -这是一个参数,它通知服务器不要发送任何答复。
  • value-它是需要存储的数据。使用上述选项执行命令后,需要在新行中传递数据。
输出
命令的输出如下所示-
  • STORED – 表示存储成功。
  • ERROR – 表示保存数据时出错或语法错误。
  • EXISTS – 表示自上次获取以来有人修改了CAS数据。
  • NOT_FOUND – 表示键在Memcached服务器中不存在。
要在Memcached中执行CAS命令,您需要从Memcached gets命令获取CAS令牌。

cas tp 0 900 9
ERROR
cas tp 0 900 9 2
memcached
set tp 0 900 9
memcached
STORED
gets tp
VALUE tp 0 9 1
memcached
END
cas tp 0 900 5 2
redis
EXISTS
cas tp 0 900 5 1
redis
STORED
get tp
VALUE tp 0 5
redis
END

使用Java应用程序使用CAS

要在Memcached服务器中CAS命令,您需要使用Memcached cas方法。

import java.io.IOException;
import java.net.InetSocketAddress;
import net.spy.memcached.MemcachedClient;
public class MemcachedJava {
public static void main(String[] args) {
// Connecting to Memcached server on localhost
MemcachedClient mcc = null;
try {
mcc = new MemcachedClient(new InetSocketAddress("127.0.0.1", 11211));
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
System.out.println("Connection to server sucessfully");
// 设置数据库 第一个参数key 第二个参数过期时间,第三个参数value
System.out.println("set status:" + mcc.set("jc2182", 900, "memcachd").getStatus());
System.out.println("Get from Cache:" + mcc.get("jc2182"));
// 获取cas token
long castToken = mcc.gets("jc2182").getCas();
System.out.println("Cas token:" + castToken);
// 设置新值
System.out.println("Now set new data:" + mcc.cas("jc2182", castToken, 900, "redis"));
System.out.println("Get from Cache:" + mcc.get("jc2182"));
}
}

输出

Connection to server sucessfully
set status:{OperationStatus success=true:  STORED}
Get from Cache:memcachd
Cas token:9
Now set new data:OK
Get from Cache:redis

炫意HTML5 » Memcached CAS 命令

Java基础教程Android基础教程