本文整理汇总了Java中me.prettyprint.hector.api.query.MultigetSliceQuery.setKeys方法的典型用法代码示例。如果您正苦于以下问题:Java MultigetSliceQuery.setKeys方法的具体用法?Java MultigetSliceQuery.setKeys怎么用?Java MultigetSliceQuery.setKeys使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类me.prettyprint.hector.api.query.MultigetSliceQuery
的用法示例。
在下文中一共展示了MultigetSliceQuery.setKeys方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getMulti
import me.prettyprint.hector.api.query.MultigetSliceQuery; //导入方法依赖的package包/类
/**
* Get multiple values
* @param keys
* @return
*/
public Map<String, String> getMulti(String columnName, String... keys) {
MultigetSliceQuery<String, String,String> q = createMultigetSliceQuery(keyspace, serializer, serializer, serializer);
q.setColumnFamily(columnFamilyName);
q.setKeys(keys);
q.setColumnNames(columnName);
QueryResult<Rows<String,String,String>> r = q.execute();
Rows<String,String,String> rows = r.get();
Map<String, String> ret = new HashMap<String, String>(keys.length);
for (String k: keys) {
HColumn<String, String> c = rows.getByKey(k).getColumnSlice().getColumnByName(columnName);
if (c != null && c.getValue() != null) {
ret.put(k, c.getValue());
}
}
return ret;
}
示例2: batchGetSubList
import me.prettyprint.hector.api.query.MultigetSliceQuery; //导入方法依赖的package包/类
/** Implements a batch get operation for a list of keys. */
private List<byte[]> batchGetSubList(List<byte[]> keys) {
MultigetSliceQuery<byte[], String, byte[]> multigetSliceQuery = HFactory
.createMultigetSliceQuery(keyspace, BytesArraySerializer.get(),
StringSerializer.get(), BytesArraySerializer.get());
multigetSliceQuery
.setColumnFamily(CassandraStorageSystem.COLUMN_FAMILY_NAME);
multigetSliceQuery.setKeys(keys);
multigetSliceQuery.setColumnNames(CassandraStorageSystem.COLUMN_NAME);
Map<ByteArrayWrapper, Integer> keyToIndex = new HashMap<ByteArrayWrapper, Integer>();
int index = 0;
for (byte[] key : keys) {
keyToIndex.put(new ByteArrayWrapper(key), index);
index += 1;
}
List<byte[]> resultList = new ArrayList<byte[]>(
Collections.<byte[]> nCopies(keys.size(), null));
for (Row<byte[], String, byte[]> row : multigetSliceQuery.execute()
.get()) {
List<HColumn<String, byte[]>> columns = row.getColumnSlice()
.getColumns();
if (!columns.isEmpty()) {
int i = keyToIndex.get(new ByteArrayWrapper(row.getKey()));
resultList.set(i, columns.get(0).getValue());
}
}
return resultList;
}
示例3: getSlice
import me.prettyprint.hector.api.query.MultigetSliceQuery; //导入方法依赖的package包/类
@Override
public <R, T> HerculesMultiQueryResult<R, T> getSlice(Keyspace keyspace, String columnFamily, DataOperationsProfile dataOperationsProfile, RowSerializer<R, T> rowSerializer,
Iterable<R> rowKeys, SliceDataSpecificator<T> sliceDataSpecificator) {
MultigetSliceQuery<R, T, ByteBuffer> multigetSliceQuery = HFactory.createMultigetSliceQuery(
keyspace,
rowSerializer.getRowKeySerializer(),
rowSerializer.getTopKeySerializer(),
ByteBufferSerializer.get());
multigetSliceQuery.setColumnFamily(columnFamily);
multigetSliceQuery.setKeys(rowKeys);
sliceDataSpecificator.fillMultigetSliceQuery(multigetSliceQuery);
QueryResult<Rows<R, T, ByteBuffer>> result;
StopWatch monitor = monitoring.start(HerculesMonitoringGroup.HERCULES_DD, "Get slice " + columnFamily);
try {
result = multigetSliceQuery.execute();
} finally {
long time = monitor.stop();
if (dataOperationsProfile != null) {
dataOperationsProfile.ms += time;
dataOperationsProfile.dbQueries++;
}
}
return buildQueryResult(dataOperationsProfile, rowSerializer, result.get());
}