Interface RStreamReactive<K,V>
- Type Parameters:
K
- key typeV
- value type
- All Superinterfaces:
RExpirableReactive
,RObjectReactive
Requires Redis 5.0.0 and higher.
- Author:
- Nikita Koksharov
-
Method Summary
Modifier and TypeMethodDescriptionreactor.core.publisher.Mono
<Long> ack
(String groupName, StreamMessageId... ids) Marks pending messages by group name and streamids
as correctly processed.reactor.core.publisher.Mono
<StreamMessageId> add
(StreamAddArgs<K, V> args) Appends a new entry/entries and returns generated Stream Message IDreactor.core.publisher.Mono
<Void> add
(StreamMessageId id, StreamAddArgs<K, V> args) Appends a new entry/entries by specified Stream Message IDreactor.core.publisher.Mono
<Integer> addListener
(ObjectListener listener) Adds object event listenerreactor.core.publisher.Mono
<AutoClaimResult<K, V>> autoClaim
(String groupName, String consumerName, long idleTime, TimeUnit idleTimeUnit, StreamMessageId startId, int count) Transfers ownership of pending messages by id to a new consumer by name if idle time of messages and startId are greater than defined value.reactor.core.publisher.Mono
<Map<StreamMessageId, Map<K, V>>> claim
(String groupName, String consumerName, long idleTime, TimeUnit idleTimeUnit, StreamMessageId... ids) Transfers ownership of pending messages by id to a new consumer by name if idle time of messages is greater than defined value.reactor.core.publisher.Mono
<Void> createConsumer
(String groupName, String consumerName) Creates consumer of the group by name.reactor.core.publisher.Mono
<Void> Creates consumer group.reactor.core.publisher.Mono
<FastAutoClaimResult> fastAutoClaim
(String groupName, String consumerName, long idleTime, TimeUnit idleTimeUnit, StreamMessageId startId, int count) Transfers ownership of pending messages by id to a new consumer by name if idle time of messages and startId are greater than defined value.reactor.core.publisher.Mono
<StreamInfo<K, V>> getInfo()
Returns information about this stream.reactor.core.publisher.Mono
<PendingResult> getPendingInfo
(String groupName) Returns common info about pending messages by group name.reactor.core.publisher.Mono
<List<StreamConsumer>> listConsumers
(String groupName) Returns list of objects with information about group customers for specifiedgroupName
.reactor.core.publisher.Mono
<List<StreamGroup>> Returns list of objects with information about groups belonging to this stream.reactor.core.publisher.Mono
<List<PendingEntry>> listPending
(String groupName, String consumerName, StreamMessageId startId, StreamMessageId endId, int count) Returns list of pending messages by group name and consumer name.reactor.core.publisher.Mono
<List<PendingEntry>> listPending
(String groupName, String consumerName, StreamMessageId startId, StreamMessageId endId, long idleTime, TimeUnit idleTimeUnit, int count) Returns list of common info about pending messages by group and consumer name.reactor.core.publisher.Mono
<List<PendingEntry>> listPending
(String groupName, StreamMessageId startId, StreamMessageId endId, int count) Returns list of pending messages by group name.reactor.core.publisher.Mono
<List<PendingEntry>> listPending
(String groupName, StreamMessageId startId, StreamMessageId endId, long idleTime, TimeUnit idleTimeUnit, int count) Returns list of common info about pending messages by group name.reactor.core.publisher.Mono
<Map<StreamMessageId, Map<K, V>>> pendingRange
(String groupName, String consumerName, StreamMessageId startId, StreamMessageId endId, int count) Returns stream data of pending messages by group and customer name.reactor.core.publisher.Mono
<Map<StreamMessageId, Map<K, V>>> pendingRange
(String groupName, String consumerName, StreamMessageId startId, StreamMessageId endId, long idleTime, TimeUnit idleTimeUnit, int count) Returns stream data of pending messages by group and customer name.reactor.core.publisher.Mono
<Map<StreamMessageId, Map<K, V>>> pendingRange
(String groupName, StreamMessageId startId, StreamMessageId endId, int count) Returns stream data of pending messages by group name.reactor.core.publisher.Mono
<Map<StreamMessageId, Map<K, V>>> pendingRange
(String groupName, StreamMessageId startId, StreamMessageId endId, long idleTime, TimeUnit idleTimeUnit, int count) Returns stream data of pending messages by group name.reactor.core.publisher.Mono
<Map<StreamMessageId, Map<K, V>>> range
(int count, StreamMessageId startId, StreamMessageId endId) Returns stream data in range by specified start Stream ID (included) and end Stream ID (included).reactor.core.publisher.Mono
<Map<StreamMessageId, Map<K, V>>> range
(StreamMessageId startId, StreamMessageId endId) Returns stream data in range by specified start Stream ID (included) and end Stream ID (included).reactor.core.publisher.Mono
<Map<StreamMessageId, Map<K, V>>> rangeReversed
(int count, StreamMessageId startId, StreamMessageId endId) Returns stream data in reverse order in range by specified start Stream ID (included) and end Stream ID (included).reactor.core.publisher.Mono
<Map<StreamMessageId, Map<K, V>>> rangeReversed
(StreamMessageId startId, StreamMessageId endId) Returns stream data in reverse order in range by specified start Stream ID (included) and end Stream ID (included).read
(StreamMultiReadArgs args) Read stream data from multiple streams including current.reactor.core.publisher.Mono
<Map<StreamMessageId, Map<K, V>>> read
(StreamReadArgs args) Read stream data from current stream only.readGroup
(String groupName, String consumerName, StreamMultiReadGroupArgs args) Read stream data from consumer group and multiple streams including current.reactor.core.publisher.Mono
<Map<StreamMessageId, Map<K, V>>> readGroup
(String groupName, String consumerName, StreamReadGroupArgs args) Read stream data from consumer group and current stream only.reactor.core.publisher.Mono
<Long> remove
(StreamMessageId... ids) Removes messages by id.reactor.core.publisher.Mono
<Long> removeConsumer
(String groupName, String consumerName) Removes consumer of the group by name.reactor.core.publisher.Mono
<Void> removeGroup
(String groupName) Removes group by name.reactor.core.publisher.Mono
<Long> size()
Returns number of entries in streamreactor.core.publisher.Mono
<Long> trim
(StreamTrimArgs args) Trims stream using strict trimming.reactor.core.publisher.Mono
<Long> trimNonStrict
(StreamTrimArgs args) Trims stream using non-strict trimming.reactor.core.publisher.Mono
<Void> updateGroupMessageId
(String groupName, StreamMessageId id) Updates next message id delivered to consumers.Methods inherited from interface org.redisson.api.RExpirableReactive
clearExpire, expire, expire, expire, expireAt, expireAt, expireIfGreater, expireIfGreater, expireIfLess, expireIfLess, expireIfNotSet, expireIfNotSet, expireIfSet, expireIfSet, getExpireTime, remainTimeToLive
Methods inherited from interface org.redisson.api.RObjectReactive
copy, copy, copy, copyAndReplace, copyAndReplace, delete, dump, getCodec, getIdleTime, getName, isExists, migrate, move, removeListener, rename, renamenx, restore, restore, restoreAndReplace, restoreAndReplace, sizeInMemory, touch, unlink
-
Method Details
-
createGroup
Creates consumer group.Usage examples:
StreamMessageId id = stream.createGroup(StreamCreateGroupArgs.name("test").id(id).makeStream());
- Parameters:
args
- method arguments object
-
removeGroup
Removes group by name.- Parameters:
groupName
- - name of group- Returns:
- void
-
createConsumer
Creates consumer of the group by name.Requires Redis 6.2.0 and higher.
- Parameters:
groupName
- - name of groupconsumerName
- - name of consumer
-
removeConsumer
Removes consumer of the group by name.- Parameters:
groupName
- - name of groupconsumerName
- - name of consumer- Returns:
- number of pending messages owned by consumer
-
updateGroupMessageId
Updates next message id delivered to consumers.- Parameters:
groupName
- - name of groupid
- - Stream Message ID- Returns:
- void
-
ack
Marks pending messages by group name and streamids
as correctly processed.- Parameters:
groupName
- - name of groupids
- - stream ids- Returns:
- marked messages amount
-
getPendingInfo
Returns common info about pending messages by group name.- Parameters:
groupName
- - name of group- Returns:
- result object
-
listPending
reactor.core.publisher.Mono<List<PendingEntry>> listPending(String groupName, StreamMessageId startId, StreamMessageId endId, int count) Returns list of pending messages by group name. Limited by start stream id and end stream id and count.StreamMessageId.MAX
is used as max stream idStreamMessageId.MIN
is used as min stream id- Parameters:
groupName
- - name of groupstartId
- - start stream idendId
- - end stream idcount
- - amount of messages- Returns:
- list
-
listPending
reactor.core.publisher.Mono<List<PendingEntry>> listPending(String groupName, String consumerName, StreamMessageId startId, StreamMessageId endId, int count) Returns list of pending messages by group name and consumer name. Limited by start stream id and end stream id and count.StreamMessageId.MAX
is used as max stream idStreamMessageId.MIN
is used as min stream id- Parameters:
groupName
- - name of groupconsumerName
- - name of consumerstartId
- - start stream idendId
- - end stream idcount
- - amount of messages- Returns:
- list
-
listPending
reactor.core.publisher.Mono<List<PendingEntry>> listPending(String groupName, StreamMessageId startId, StreamMessageId endId, long idleTime, TimeUnit idleTimeUnit, int count) Returns list of common info about pending messages by group name. Limited by minimum idle time, messages count, start and end Stream Message IDs.StreamMessageId.MAX
is used as max Stream Message IDStreamMessageId.MIN
is used as min Stream Message IDRequires Redis 6.2.0 and higher.
- Parameters:
groupName
- - name of groupstartId
- - start Stream Message IDendId
- - end Stream Message IDidleTime
- - minimum idle time of messagesidleTimeUnit
- - idle time unitcount
- - amount of messages- Returns:
- list
- See Also:
-
listPending
reactor.core.publisher.Mono<List<PendingEntry>> listPending(String groupName, String consumerName, StreamMessageId startId, StreamMessageId endId, long idleTime, TimeUnit idleTimeUnit, int count) Returns list of common info about pending messages by group and consumer name. Limited by minimum idle time, messages count, start and end Stream Message IDs.StreamMessageId.MAX
is used as max Stream Message IDStreamMessageId.MIN
is used as min Stream Message IDRequires Redis 6.2.0 and higher.
- Parameters:
groupName
- - name of groupconsumerName
- - name of consumerstartId
- - start Stream Message IDendId
- - end Stream Message IDidleTime
- - minimum idle time of messagesidleTimeUnit
- - idle time unitcount
- - amount of messages- Returns:
- list
- See Also:
-
pendingRange
reactor.core.publisher.Mono<Map<StreamMessageId,Map<K, pendingRangeV>>> (String groupName, StreamMessageId startId, StreamMessageId endId, long idleTime, TimeUnit idleTimeUnit, int count) Returns stream data of pending messages by group name. Limited by minimum idle time, messages count, start and end Stream Message IDs.StreamMessageId.MAX
is used as max Stream Message IDStreamMessageId.MIN
is used as min Stream Message IDRequires Redis 6.2.0 and higher.
- Parameters:
groupName
- - name of groupstartId
- - start Stream Message IDendId
- - end Stream Message IDidleTime
- - minimum idle time of messagesidleTimeUnit
- - idle time unitcount
- - amount of messages- Returns:
- map
- See Also:
-
pendingRange
reactor.core.publisher.Mono<Map<StreamMessageId,Map<K, pendingRangeV>>> (String groupName, String consumerName, StreamMessageId startId, StreamMessageId endId, long idleTime, TimeUnit idleTimeUnit, int count) Returns stream data of pending messages by group and customer name. Limited by minimum idle time, messages count, start and end Stream Message IDs.StreamMessageId.MAX
is used as max Stream Message IDStreamMessageId.MIN
is used as min Stream Message IDRequires Redis 6.2.0 and higher.
- Parameters:
groupName
- - name of groupconsumerName
- - name of consumerstartId
- - start Stream Message IDendId
- - end Stream Message IDidleTime
- - minimum idle time of messagesidleTimeUnit
- - idle time unitcount
- - amount of messages- Returns:
- map
- See Also:
-
claim
reactor.core.publisher.Mono<Map<StreamMessageId,Map<K, claimV>>> (String groupName, String consumerName, long idleTime, TimeUnit idleTimeUnit, StreamMessageId... ids) Transfers ownership of pending messages by id to a new consumer by name if idle time of messages is greater than defined value.- Parameters:
groupName
- - name of groupconsumerName
- - name of consumeridleTime
- - minimum idle time of messagesidleTimeUnit
- - idle time unitids
- - stream ids- Returns:
- stream data mapped by Stream ID
-
autoClaim
reactor.core.publisher.Mono<AutoClaimResult<K,V>> autoClaim(String groupName, String consumerName, long idleTime, TimeUnit idleTimeUnit, StreamMessageId startId, int count) Transfers ownership of pending messages by id to a new consumer by name if idle time of messages and startId are greater than defined value.- Parameters:
groupName
- - name of groupconsumerName
- - name of consumeridleTime
- - minimum idle time of messagesidleTimeUnit
- - idle time unitstartId
- - start Stream Message ID- Returns:
- stream data mapped by Stream ID
-
fastAutoClaim
reactor.core.publisher.Mono<FastAutoClaimResult> fastAutoClaim(String groupName, String consumerName, long idleTime, TimeUnit idleTimeUnit, StreamMessageId startId, int count) Transfers ownership of pending messages by id to a new consumer by name if idle time of messages and startId are greater than defined value.- Parameters:
groupName
- - name of groupconsumerName
- - name of consumeridleTime
- - minimum idle time of messagesidleTimeUnit
- - idle time unitstartId
- - start Stream Message ID- Returns:
- list of Stream Message IDs
-
readGroup
reactor.core.publisher.Mono<Map<String,Map<StreamMessageId, readGroupMap<K, V>>>> (String groupName, String consumerName, StreamMultiReadGroupArgs args) Read stream data from consumer group and multiple streams including current.Usage examples:
Map result = stream.read("group1", "consumer1", StreamMultiReadGroupArgs.greaterThan(id, "stream2", id2));
Map result = stream.read("group1", "consumer1", StreamMultiReadGroupArgs.greaterThan(id, "stream2", id2) .count(100) .timeout(Duration.ofSeconds(5))));
- Parameters:
args
- - method arguments object- Returns:
- stream data mapped by stream name and Stream Message ID
-
readGroup
reactor.core.publisher.Mono<Map<StreamMessageId,Map<K, readGroupV>>> (String groupName, String consumerName, StreamReadGroupArgs args) Read stream data from consumer group and current stream only.Usage examples:
Map result = stream.read("group1", "consumer1", StreamReadGroupArgs.greaterThan(id));
Map result = stream.read("group1", "consumer1", StreamReadGroupArgs.greaterThan(id) .count(100) .timeout(Duration.ofSeconds(5))));
- Parameters:
args
- - method arguments object- Returns:
- stream data mapped by Stream Message ID
-
size
reactor.core.publisher.Mono<Long> size()Returns number of entries in stream- Returns:
- size of stream
-
add
Appends a new entry/entries and returns generated Stream Message IDUsage examples:
StreamMessageId id = stream.add(StreamAddArgs.entry(15, 37));
StreamMessageId id = stream.add(StreamAddArgs.entries(15, 37, 23, 43) .trim(TrimStrategy.MAXLEN, 100)));
- Parameters:
args
- - method arguments object- Returns:
- Stream Message ID
-
add
Appends a new entry/entries by specified Stream Message IDUsage examples:
stream.add(id, StreamAddArgs.entry(15, 37));
stream.add(id, StreamAddArgs.entries(15, 37, 23, 43) .trim(TrimStrategy.MAXLEN, 100)));
- Parameters:
id
- - Stream Message IDargs
- - method arguments object
-
read
reactor.core.publisher.Mono<Map<String,Map<StreamMessageId, readMap<K, V>>>> (StreamMultiReadArgs args) Read stream data from multiple streams including current.Usage examples:
Map result = stream.read(StreamMultiReadArgs.greaterThan(id, "stream2", id2));
Map result = stream.read(StreamMultiReadArgs.greaterThan(id, "stream2", id2) .count(100) .timeout(Duration.ofSeconds(5))));
- Parameters:
args
- - method arguments object- Returns:
- stream data mapped by stream name and Stream Message ID
-
read
Read stream data from current stream only.Usage examples:
Map result = stream.read(StreamReadArgs.greaterThan(id));
Map result = stream.read(StreamReadArgs.greaterThan(id) .count(100) .timeout(Duration.ofSeconds(5))));
- Parameters:
args
- - method arguments object- Returns:
- stream data mapped by Stream Message ID
-
range
reactor.core.publisher.Mono<Map<StreamMessageId,Map<K, rangeV>>> (StreamMessageId startId, StreamMessageId endId) Returns stream data in range by specified start Stream ID (included) and end Stream ID (included).- Parameters:
startId
- - start Stream IDendId
- - end Stream ID- Returns:
- stream data mapped by Stream ID
-
range
reactor.core.publisher.Mono<Map<StreamMessageId,Map<K, rangeV>>> (int count, StreamMessageId startId, StreamMessageId endId) Returns stream data in range by specified start Stream ID (included) and end Stream ID (included).- Parameters:
count
- - stream data size limitstartId
- - start Stream IDendId
- - end Stream ID- Returns:
- stream data mapped by Stream ID
-
rangeReversed
reactor.core.publisher.Mono<Map<StreamMessageId,Map<K, rangeReversedV>>> (StreamMessageId startId, StreamMessageId endId) Returns stream data in reverse order in range by specified start Stream ID (included) and end Stream ID (included).- Parameters:
startId
- - start Stream IDendId
- - end Stream ID- Returns:
- stream data mapped by Stream ID
-
rangeReversed
reactor.core.publisher.Mono<Map<StreamMessageId,Map<K, rangeReversedV>>> (int count, StreamMessageId startId, StreamMessageId endId) Returns stream data in reverse order in range by specified start Stream ID (included) and end Stream ID (included).- Parameters:
count
- - stream data size limitstartId
- - start Stream IDendId
- - end Stream ID- Returns:
- stream data mapped by Stream ID
-
remove
Removes messages by id.- Parameters:
ids
- - id of messages to remove- Returns:
- deleted messages amount
-
trim
Trims stream using strict trimming.- Parameters:
args
- - method arguments object- Returns:
- number of deleted messages
-
trimNonStrict
Trims stream using non-strict trimming.- Parameters:
args
- - method arguments object- Returns:
- number of deleted messages
-
getInfo
reactor.core.publisher.Mono<StreamInfo<K,V>> getInfo()Returns information about this stream.- Returns:
- info object
-
listGroups
reactor.core.publisher.Mono<List<StreamGroup>> listGroups()Returns list of objects with information about groups belonging to this stream.- Returns:
- list of info objects
-
listConsumers
Returns list of objects with information about group customers for specifiedgroupName
.- Parameters:
groupName
- - name of group- Returns:
- list of info objects
-
pendingRange
reactor.core.publisher.Mono<Map<StreamMessageId,Map<K, pendingRangeV>>> (String groupName, StreamMessageId startId, StreamMessageId endId, int count) Returns stream data of pending messages by group name. Limited by start Stream Message ID and end Stream Message ID and count.StreamMessageId.MAX
is used as max Stream Message IDStreamMessageId.MIN
is used as min Stream Message ID- Parameters:
groupName
- - name of groupstartId
- - start Stream Message IDendId
- - end Stream Message IDcount
- - amount of messages- Returns:
- map
- See Also:
-
pendingRange
reactor.core.publisher.Mono<Map<StreamMessageId,Map<K, pendingRangeV>>> (String groupName, String consumerName, StreamMessageId startId, StreamMessageId endId, int count) Returns stream data of pending messages by group and customer name. Limited by start Stream Message ID and end Stream Message ID and count.StreamMessageId.MAX
is used as max Stream Message IDStreamMessageId.MIN
is used as min Stream Message ID- Parameters:
groupName
- - name of groupconsumerName
- - name of consumerstartId
- - start Stream Message IDendId
- - end Stream Message IDcount
- - amount of messages- Returns:
- map
- See Also:
-
addListener
Adds object event listener- Specified by:
addListener
in interfaceRObjectReactive
- Parameters:
listener
- object event listener- Returns:
- listener id
- See Also:
-