Interface StreamOperations<K,HK,HV>
- All Superinterfaces:
HashMapperProvider<HK,HV>
Redis stream specific operations.
- Since:
- 2.2
- Author:
- Mark Paluch, Christoph Strobl, Dengliming, Marcin Zielinski, John Blum
-
Method Summary
Modifier and TypeMethodDescriptiondefault Longacknowledge(String group, Record<K, ?> record) Acknowledge the given record as processed.acknowledge(K key, String group, String... recordIds) Acknowledge one or more records as processed.default Longacknowledge(K key, String group, RecordId... recordIds) Acknowledge one or more records as processed.default RecordIdAppend a record to the streamkey.default RecordIdAppend a record, backed by aMapholding the field/value pairs, to the stream.Append the record, backed by the given value, to the stream.Changes the ownership of a pending message so that the new owner is the consumer specified as the command argument.claim(K key, String consumerGroup, String newOwner, RedisStreamCommands.XClaimOptions xClaimOptions) Changes the ownership of a pending message so that the new owner is the consumer specified as the command argument.Obtain information about every consumer in a specific consumer group for the stream stored at the specified key.default StringcreateGroup(K key, String group) Create a consumer group at thelatest offset.createGroup(K key, ReadOffset readOffset, String group) Create a consumer group.default LongRemoves the specified records from the stream.Removes the specified records from the stream.default LongRemoves a givenRecordfrom the stream.deleteConsumer(K key, Consumer consumer) Delete a consumer from a consumer group.deserializeRecord(ByteRecord record) Deserialize aByteRecordusing the configured serializers into aMapRecord.destroyGroup(K key, String group) Destroy a consumer group.<V> HashMapper<V,HK, HV> getHashMapper(Class<V> targetType) Get theHashMapperfor a specific type.Obtain information about consumer groups associated with the stream stored at the specified key.Obtain general information about the stream stored at the specified key.default <V> List<ObjectRecord<K,V>> Map records fromMapRecordtoObjectRecords.default <V> ObjectRecord<K,V> Map record fromMapRecordtoObjectRecord.Obtain thePendingMessagesSummaryfor a given consumer group.default PendingMessagesObtained detailed information about all pending messages for a givenConsumer.default <V> List<ObjectRecord<K,V>> Read all records from a stream within a specificRangeasObjectRecord.default <V> List<ObjectRecord<K,V>> Read records from a stream within a specificRange.default <V> List<ObjectRecord<K,V>> read(Class<V> targetType, Consumer consumer, StreamOffset<K>... streams) Read records from one or moreStreamOffsets using a consumer group asObjectRecord.default <V> List<ObjectRecord<K,V>> read(Class<V> targetType, Consumer consumer, StreamReadOptions readOptions, StreamOffset<K>... streams) Read records from one or moreStreamOffsets using a consumer group asObjectRecord.default <V> List<ObjectRecord<K,V>> read(Class<V> targetType, StreamOffset<K>... streams) Read records from one or moreStreamOffsets asObjectRecord.default <V> List<ObjectRecord<K,V>> read(Class<V> targetType, StreamReadOptions readOptions, StreamOffset<K>... streams) Read records from one or moreStreamOffsets asObjectRecord.read(Consumer consumer, StreamOffset<K>... streams) Read records from one or moreStreamOffsets using a consumer group.read(Consumer consumer, StreamReadOptions readOptions, StreamOffset<K>... streams) Read records from one or moreStreamOffsets using a consumer group.read(StreamOffset<K>... streams) Read records from one or moreStreamOffsets.read(StreamReadOptions readOptions, StreamOffset<K>... streams) Read records from one or moreStreamOffsets.default <V> List<ObjectRecord<K,V>> reverseRange(Class<V> targetType, K key, Range<String> range) Read records from a stream within a specificRangein reverse order asObjectRecord.default <V> List<ObjectRecord<K,V>> Read records from a stream within a specificRangeapplying aLimitin reverse order asObjectRecord.reverseRange(K key, Range<String> range) Read records from a stream within a specificRangein reverse order.reverseRange(K key, Range<String> range, Limit limit) Get the length of a stream.Trims the stream tocountelements.Trims the stream tocountelements.
-
Method Details
-
acknowledge
Acknowledge one or more records as processed.- Parameters:
key- the stream key.group- name of the consumer group.recordIds- record id's to acknowledge.- Returns:
- length of acknowledged records. null when used in pipeline / transaction.
- See Also:
-
acknowledge
Acknowledge one or more records as processed.- Parameters:
key- the stream key.group- name of the consumer group.recordIds- record id's to acknowledge.- Returns:
- length of acknowledged records. null when used in pipeline / transaction.
- See Also:
-
acknowledge
Acknowledge the given record as processed.- Parameters:
group- name of the consumer group.record- theRecordto acknowledge.- Returns:
- length of acknowledged records. null when used in pipeline / transaction.
- See Also:
-
add
Append a record to the streamkey.- Parameters:
key- the stream key.content- record content as Map.- Returns:
- the record Id. null when used in pipeline / transaction.
- See Also:
-
add
Append a record, backed by aMapholding the field/value pairs, to the stream.- Parameters:
record- the record to append.- Returns:
- the record Id. null when used in pipeline / transaction.
- See Also:
-
add
Append the record, backed by the given value, to the stream. The value is mapped as hash and serialized.- Parameters:
record- must not be null.- Returns:
- the record Id. null when used in pipeline / transaction.
- See Also:
-
claim
default List<MapRecord<K,HK, claimHV>> (K key, String consumerGroup, String newOwner, Duration minIdleTime, RecordId... recordIds) Changes the ownership of a pending message so that the new owner is the consumer specified as the command argument. The message is claimed only if its idle time (ms) is greater than the givenminimum idle timespecified when calling XCLAIM.- Parameters:
key-keyto the steam.consumerGroup-nameof the consumer group.newOwner-nameof the consumer claiming the message.minIdleTime-minimum idle timerequired for a message to be claimed.recordIds-record IDsto be claimed.- Returns:
Listof claimedMapRecords.- See Also:
-
claim
List<MapRecord<K,HK, claimHV>> (K key, String consumerGroup, String newOwner, RedisStreamCommands.XClaimOptions xClaimOptions) Changes the ownership of a pending message so that the new owner is the consumer specified as the command argument. The message is claimed only if its idle time (ms) is greater than the givenminimum idle timespecified when calling XCLAIM.- Parameters:
key-keyto the steam.consumerGroup-nameof the consumer group.newOwner-nameof the consumer claiming the message.xClaimOptions- additional parameters for the CLAIM call.- Returns:
Listof claimedMapRecords.- See Also:
-
delete
Removes the specified records from the stream. Returns the number of records deleted, that may be different from the number of IDs passed in case certain IDs do not exist.- Parameters:
key- the stream key.recordIds- stream record Id's.- Returns:
- number of removed entries. null when used in pipeline / transaction.
- See Also:
-
delete
Removes a givenRecordfrom the stream.- Parameters:
record- must not be null.- Returns:
- he
Monoemitting the number of removed records.
-
delete
Removes the specified records from the stream. Returns the number of records deleted, that may be different from the number of IDs passed in case certain IDs do not exist.- Parameters:
key- the stream key.recordIds- stream record Id's.- Returns:
- the
Monoemitting the number of removed records. - See Also:
-
createGroup
Create a consumer group at thelatest offset. This command creates the stream if it does not already exist.- Parameters:
key- the key the stream is stored at.group- name of the consumer group.- Returns:
- OK if successful. null when used in pipeline / transaction.
-
createGroup
Create a consumer group. This command creates the stream if it does not already exist.- Parameters:
key- the key the stream is stored at.readOffset- theReadOffsetto apply.group- name of the consumer group.- Returns:
- OK if successful. null when used in pipeline / transaction.
-
deleteConsumer
Delete a consumer from a consumer group.- Parameters:
key- the stream key.consumer- consumer identified by group name and consumer key.- Returns:
- true if successful. null when used in pipeline / transaction.
-
destroyGroup
Destroy a consumer group.- Parameters:
key- the stream key.group- name of the consumer group.- Returns:
- true if successful. null when used in pipeline / transaction.
-
consumers
Obtain information about every consumer in a specific consumer group for the stream stored at the specified key.- Parameters:
key- the key the stream is stored at.group- name of the consumer group.- Returns:
- null when used in pipeline / transaction.
- Since:
- 2.3
-
groups
Obtain information about consumer groups associated with the stream stored at the specified key.- Parameters:
key- the key the stream is stored at.- Returns:
- null when used in pipeline / transaction.
- Since:
- 2.3
-
info
Obtain general information about the stream stored at the specified key.- Parameters:
key- the key the stream is stored at.- Returns:
- null when used in pipeline / transaction.
- Since:
- 2.3
-
pending
Obtain thePendingMessagesSummaryfor a given consumer group.- Parameters:
key- the key the stream is stored at. Must not be null.group- the name of the consumer group. Must not be null.- Returns:
- a summary of pending messages within the given consumer group or null when used in pipeline / transaction.
- Since:
- 2.3
- See Also:
-
pending
Obtained detailed information about all pending messages for a givenConsumer.- Parameters:
key- the key the stream is stored at. Must not be null.consumer- the consumer to fetchPendingMessagesfor. Must not be null.- Returns:
- pending messages for the given
Consumeror null when used in pipeline / transaction. - Since:
- 2.3
- See Also:
-
pending
- Parameters:
key- the key the stream is stored at. Must not be null.group- the name of the consumer group. Must not be null.range- the range of messages ids to search within. Must not be null.count- limit the number of results.- Returns:
- pending messages for the given consumer group or null when used in pipeline / transaction.
- Since:
- 2.3
- See Also:
-
pending
Obtain detailed information about pendingmessagesfor a givenRangeandConsumerwithin a consumer group.- Parameters:
key- the key the stream is stored at. Must not be null.consumer- the name of theConsumer. Must not be null.range- the range of messages ids to search within. Must not be null.count- limit the number of results.- Returns:
- pending messages for the given
Consumeror null when used in pipeline / transaction. - Since:
- 2.3
- See Also:
-
size
Get the length of a stream.- Parameters:
key- the stream key.- Returns:
- length of the stream. null when used in pipeline / transaction.
- See Also:
-
range
Read records from a stream within a specificRange.- Parameters:
key- the stream key.range- must not be null.- Returns:
- list with members of the resulting stream. null when used in pipeline / transaction.
- See Also:
-
range
- Parameters:
key- the stream key.range- must not be null.limit- must not be null.- Returns:
- list with members of the resulting stream. null when used in pipeline / transaction.
- See Also:
-
range
Read all records from a stream within a specificRangeasObjectRecord.- Parameters:
targetType- the target type of the payload.key- the stream key.range- must not be null.- Returns:
- list with members of the resulting stream. null when used in pipeline / transaction.
- See Also:
-
range
default <V> List<ObjectRecord<K,V>> range(Class<V> targetType, K key, Range<String> range, Limit limit) - Parameters:
targetType- the target type of the payload.key- the stream key.range- must not be null.limit- must not be null.- Returns:
- list with members of the resulting stream. null when used in pipeline / transaction.
- See Also:
-
read
Read records from one or moreStreamOffsets.- Parameters:
streams- the streams to read from.- Returns:
- list with members of the resulting stream. null when used in pipeline / transaction.
- See Also:
-
read
Read records from one or moreStreamOffsets asObjectRecord.- Parameters:
targetType- the target type of the payload.streams- the streams to read from.- Returns:
- list with members of the resulting stream. null when used in pipeline / transaction.
- See Also:
-
read
Read records from one or moreStreamOffsets.- Parameters:
readOptions- read arguments.streams- the streams to read from.- Returns:
- list with members of the resulting stream. null when used in pipeline / transaction.
- See Also:
-
read
@Nullable default <V> List<ObjectRecord<K,V>> read(Class<V> targetType, StreamReadOptions readOptions, StreamOffset<K>... streams) Read records from one or moreStreamOffsets asObjectRecord.- Parameters:
targetType- the target type of the payload.readOptions- read arguments.streams- the streams to read from.- Returns:
- list with members of the resulting stream. null when used in pipeline / transaction.
- See Also:
-
read
Read records from one or moreStreamOffsets using a consumer group.- Parameters:
consumer- consumer/group.streams- the streams to read from.- Returns:
- list with members of the resulting stream. null when used in pipeline / transaction.
- See Also:
-
read
@Nullable default <V> List<ObjectRecord<K,V>> read(Class<V> targetType, Consumer consumer, StreamOffset<K>... streams) Read records from one or moreStreamOffsets using a consumer group asObjectRecord.- Parameters:
targetType- the target type of the payload.consumer- consumer/group.streams- the streams to read from.- Returns:
- list with members of the resulting stream. null when used in pipeline / transaction.
- See Also:
-
read
@Nullable List<MapRecord<K,HK, readHV>> (Consumer consumer, StreamReadOptions readOptions, StreamOffset<K>... streams) Read records from one or moreStreamOffsets using a consumer group.- Parameters:
consumer- consumer/group.readOptions- read arguments.streams- the streams to read from.- Returns:
- list with members of the resulting stream. null when used in pipeline / transaction.
- See Also:
-
read
@Nullable default <V> List<ObjectRecord<K,V>> read(Class<V> targetType, Consumer consumer, StreamReadOptions readOptions, StreamOffset<K>... streams) Read records from one or moreStreamOffsets using a consumer group asObjectRecord.- Parameters:
targetType- the target type of the payload.consumer- consumer/group.readOptions- read arguments.streams- the streams to read from.- Returns:
- list with members of the resulting stream. null when used in pipeline / transaction.
- See Also:
-
reverseRange
Read records from a stream within a specificRangein reverse order.- Parameters:
key- the stream key.range- must not be null.- Returns:
- list with members of the resulting stream. null when used in pipeline / transaction.
- See Also:
-
reverseRange
- Parameters:
key- the stream key.range- must not be null.limit- must not be null.- Returns:
- list with members of the resulting stream. null when used in pipeline / transaction.
- See Also:
-
reverseRange
Read records from a stream within a specificRangein reverse order asObjectRecord.- Parameters:
targetType- the target type of the payload.key- the stream key.range- must not be null.- Returns:
- list with members of the resulting stream. null when used in pipeline / transaction.
- See Also:
-
reverseRange
default <V> List<ObjectRecord<K,V>> reverseRange(Class<V> targetType, K key, Range<String> range, Limit limit) Read records from a stream within a specificRangeapplying aLimitin reverse order asObjectRecord.- Parameters:
targetType- the target type of the payload.key- the stream key.range- must not be null.limit- must not be null.- Returns:
- list with members of the resulting stream. null when used in pipeline / transaction.
- See Also:
-
trim
Trims the stream tocountelements.- Parameters:
key- the stream key.count- length of the stream.- Returns:
- number of removed entries. null when used in pipeline / transaction.
- See Also:
-
trim
Trims the stream tocountelements.- Parameters:
key- the stream key.count- length of the stream.approximateTrimming- the trimming must be performed in a approximated way in order to maximize performances.- Returns:
- number of removed entries. null when used in pipeline / transaction.
- Since:
- 2.4
- See Also:
-
getHashMapper
Get theHashMapperfor a specific type.- Specified by:
getHashMapperin interfaceHashMapperProvider<K,HK> - Type Parameters:
V-- Parameters:
targetType- must not be null.- Returns:
- the
HashMappersuitable for a given type;
-
map
Map record fromMapRecordtoObjectRecord.- Parameters:
record- the stream record to map.targetType- the target type of the payload.- Returns:
- the mapped
ObjectRecord. - Since:
- 2.x
-
map
@Nullable default <V> List<ObjectRecord<K,V>> map(@Nullable List<MapRecord<K, HK, HV>> records, Class<V> targetType) Map records fromMapRecordtoObjectRecords.- Parameters:
records- the stream records to map.targetType- the target type of the payload.- Returns:
- the mapped
object records. - Since:
- 2.x
-
deserializeRecord
Deserialize aByteRecordusing the configured serializers into aMapRecord.- Parameters:
record- the stream record to map.- Returns:
- deserialized
MapRecord. - Since:
- 2.x
-