ITPub博客

首页 > 应用开发 > IT综合 > cassandra get set同步问题

cassandra get set同步问题

原创 IT综合 作者:oxoxooxx 时间:2011-07-15 00:56:02 0 删除 编辑

import quicktime.std.clocks.Clock;

import com.sun.corba.se.spi.orbutil.fsm.Guard.Result;

import me.prettyprint.cassandra.serializers.StringSerializer;
import me.prettyprint.cassandra.service.CassandraHostConfigurator;
import me.prettyprint.hector.api.Cluster;
import me.prettyprint.hector.api.Keyspace;
import me.prettyprint.hector.api.beans.HColumn;
import me.prettyprint.hector.api.factory.HFactory;
import me.prettyprint.hector.api.mutation.Mutator;
import me.prettyprint.hector.api.query.ColumnQuery;
import me.prettyprint.hector.api.query.QueryResult;

public class ExampleClient {

public static void main(String[] args) throws IllegalStateException,Exception {
CassandraHostConfigurator cassandraHostConfigurator=new CassandraHostConfigurator("192.168.100.108:9160,192.168.100.110:9160");
cassandraHostConfigurator.setMaxActive(20);
cassandraHostConfigurator.setMaxIdle(5);
cassandraHostConfigurator.setCassandraThriftSocketTimeout(3000);
cassandraHostConfigurator.setMaxWaitTimeWhenExhausted(4000);

StringSerializer stringSerializer=new StringSerializer();
Cluster cluster=HFactory.createCluster("cluster_name", cassandraHostConfigurator);

Keyspace ks=HFactory.createKeyspace("OBS", cluster);
String columnFamily = "bucket";
Mutator mutator =HFactory.createMutator(ks, stringSerializer);

mutator.insert("bucket_key", columnFamily, HFactory.createStringColumn("object_name", "object_value"));

ColumnQuery columnQuery =HFactory.createColumnQuery(ks, stringSerializer, stringSerializer, stringSerializer);
columnQuery.setColumnFamily(columnFamily).setKey("bucket_key").setName("object_name");
QueryResult> queryResult=columnQuery.execute();


//若对象存在,打印对象key-value
System.out.println("object_name: "+queryResult.get().getName());
System.out.println("object_value: "+queryResult.get().getValue());
System.out.println("object_clock: "+queryResult.get().getClock());


//测试一个不存在的对象
System.out.println("测试一个不存在的对象");
columnQuery.setColumnFamily(columnFamily).setKey("bucket_key").setName("object_name1");
queryResult=columnQuery.execute();
try{
System.out.println("queryResult: "+queryResult.get().getClock());
}catch(NullPointerException e){
System.out.println("the object you query does not exist!");
e.printStackTrace();
}

//测试获取一个删除的对象
System.out.println("测试一个删除的对象");
columnQuery.setColumnFamily(columnFamily).setKey("bucket_name").setName("object_name");
queryResult=columnQuery.execute();
try{
System.out.println("queryResult: "+queryResult.get().getClock());
}catch(NullPointerException e){
System.out.println("the object you query does not exist!");
e.printStackTrace();
}

//测试写入一个对象后,在写入一个比当前对象时间戳要小的对象
//exist object_name_tw object_value_tw 1310661932412000L
long clock =1210661994080000L;
//mutator.insert("bucket_key", columnFamily, HFactory.createStringColumn("object_name_tw", "object_value_tw"));
HColumn column=HFactory.createColumn("object_name_tw", "object_value_tw", clock, stringSerializer, stringSerializer);
mutator.insert("bucket_key", columnFamily, column);
cluster.getConnectionManager().shutdown();
//result:clock 小于当前对象 则当前对象仍保留;clock大于当前对象,新的对象被写入

}
}

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23937368/viewspace-1052469/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    178
  • 访问量
    843645