java memcache cas_Memcached cas命令

Memcached 的 cas 命令用于设置数据,如果自上一次获取没有人更新。如果该键不在memcached中,那么它返回NOT_FOUND。

语法

memcached的cas命令的基本语法如下所示:

set key flags exptime bytes unique_cas_key [noreply]

value

以上关键字的含义,如下图所示:

key 是通过被存储在Memcached的数据并从memcached获取键(key)的名称。

flags 是32位无符号整数,该项目被检索时用的数据(由用户提供),并沿数据返回服务器存储。

exptime 以秒过期时间,0表示没有延迟,如果exptime大于30天,Memcached将使用它作为UNIX时间戳过期。

bytes 是在数据块中,需要被存储的字节数。基本上,这是一个需要存储在memcached的数据的长度。

unique_cas_key 从gets命令的获得唯一键。

noreply (optional) 参数告知服务器不发送回复

value 是一个需要存储的数据。数据需要将通过在新的一行后,执行命令上述选项。

输出

上述命令的输出如下所示:

STORED

STORED 表示成功。

ERROR以表明有问题,同时保存数据或错误的语法。

EXISTS以表明自上一次获取起已有人修改了CAS数据。

EXISTS以表示该键不存在于memcached服务器。

示例

要运行memcached的cas命令,需要从gets命令得到memcached令牌。

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的gets得到。

示例

import net.spy.memcached.MemcachedClient;

public class MemcachedJava {

public static void main(String[] args) {

//Connecting to Memcached server on localhost

MemcachedClient mcc = new MemcachedClient(new InetSocketAddress("127.0.0.1", 11211));

System.out.println("Connection to server sucessfully");

System.out.println("set status:"+mcc.set("yiibai", 900, "memcached").isDone());

//Get cas token from cache

long castToken = mcc.gets("yiibai").cas;

System.out.println("Cas token:"+castToken);

// now set new data in memcached server

System.out.println("Now set new data:"+mcc.cas("yiibai", castToken, 900, "redis"));

System.out.println("Get from Cache:"+mcc.get("yiibai"));

}

}

输出

当上述程序编译和运行,它提供了以下的输出:

Connection to server successfully

set status:true

Cas token:3

Now set new data:OK

Get from Cache:redis

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值