LocalAccumulateBy
对记录进行分组,并将每个组减少到每个分片上每个组的单个记录。
Redis 堆栈 |
---|
public <I extends java.io.Serializable> GearsBuilder<I> localAccumulateBy(
gears.operations.ExtractorOperation<T> extractor,
gears.operations.AccumulateByOperation<T,I> accumulator)
The
localAccumulateBy
function is similar to accumulateBy
, except it performs the operation locally on each shard without moving data between shards.
On each shard, it iterates through the records in the pipe, groups them based on the provided extractor, and then reduces each group to a single record per group with the accumulator function.
The initial value of the accumulator is null.
Parameters
Type parameters:
Name
Description
I
The template type of the returned builder
Function parameters:
Name
Type
Description
accumulator
AccumulateByOperation<T,I>
A function with logic to update the accumulator value with each record
extractor
ExtractorOperation
Extracts a specific value from each record
Returns
Returns a GearsBuilder object with a new template type.
Example
GearsBuilder.CreateGearsBuilder(reader).
localAccumulateBy(r->{
return r.getStringVal();
},(k, a, r)->{
Integer ret = null;
if(a == null) {
ret = 0;
}else {
ret = (Integer)a;
}
return ret + 1;
});
On this page