##TairOperatorImpl 执行write 与 get 代码如下
public boolean write(Serializable key,Serializable value){
ResultCode rc = tairManager.put(namespace,key,value);
if(rc.isSuccess()){
return true;
}else {
return false;
}
}
public DataEntry get(Serializable key){
Result<DataEntry> result = tairManager.get(namespace,key);
if(result.isSuccess()){
DataEntry entry = result.getValue();
return entry;
}
else {
return null;
}
}
测试代码如下,其中 stringDoubleConcurrentHashMap 为一个预先添加好了数据的 ConcurrentHashMap<String, Double>();
下面代码执行的结果是第一个for 循环的get 操作能够获得数据(但是version 永远是1 ),但是第二个for 循环的get 操作永远也获得不到数据。
private void testIsStringExpire(){
System.out.println("将测试使用String 为key 的时候数据是否会失效");
for(Map.Entry<String,Double> entry: stringDoubleConcurrentHashMap.entrySet()){
System.out.println("当前的key 值是" + entry.getKey());
boolean success = tairOperator.write(entry.getKey(),entry.getValue());
System.out.println("插入的状态是: ");
System.out.println(success);
DataEntry entry1 = tairOperator.get(entry.getKey());
System.out.println("插入的时候获得的value 值是");
System.out.println(entry1.toString());
}
for(Map.Entry<String,Double> entry:stringDoubleConcurrentHashMap.entrySet()){
System.out.println("获得: key : "+ entry.getKey()+ "的值");
DataEntry entry1 = tairOperator.get(entry.getKey());
if(entry1== null){
System.out.println("同样没有获得到key值的value 值");
}else {
System.out.println(entry.toString());
}
}
}
第一次for循环结果
插入的状态是:
true
插入的时候获得的value 值是
key: prefix61, value: 61.0, version: 1
cdate: 1970-01-01 08:00:00
mdate: 2016-06-11 11:49:51
edate: NEVER
第二次for 循环结果
获得: key : prefix99的值
同样没有获得到key值的value 值
-------------------------
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。