Class RedisIndexedMessageStore
java.lang.Object
de.otto.synapse.messagestore.redis.RedisIndexedMessageStore
- All Implemented Interfaces:
de.otto.synapse.messagestore.MessageStore,java.lang.AutoCloseable
@Beta
public class RedisIndexedMessageStore
extends java.lang.Object
implements de.otto.synapse.messagestore.MessageStore
Redis-based implementation of a WritableMessageStore.
The store can be configured like a ring-buffer to only store the latest N messages.
-
Constructor Summary
Constructors Constructor Description RedisIndexedMessageStore(java.lang.String name, int batchSize, int maxMessages, long maxAge, de.otto.synapse.messagestore.Indexer indexer, org.springframework.data.redis.core.RedisTemplate<java.lang.String,java.lang.String> stringRedisTemplate)RedisIndexedMessageStore(java.lang.String name, int batchSize, int maxMessages, long maxAge, de.otto.synapse.messagestore.Indexer indexer, org.springframework.data.redis.core.RedisTemplate<java.lang.String,java.lang.String> stringRedisTemplate, de.otto.synapse.translator.Encoder<java.lang.String> messageEncoder, de.otto.synapse.translator.Decoder<java.lang.String> messageDecoder) -
Method Summary
Modifier and Type Method Description voidadd(de.otto.synapse.messagestore.MessageStoreEntry entry)voidclear()java.util.Set<java.lang.String>getChannelNames()com.google.common.collect.ImmutableSet<de.otto.synapse.messagestore.Index>getIndexes()de.otto.synapse.channel.ChannelPositiongetLatestChannelPosition(java.lang.String channelName)longsize()java.util.stream.Stream<de.otto.synapse.messagestore.MessageStoreEntry>stream()java.util.stream.Stream<de.otto.synapse.messagestore.MessageStoreEntry>stream(de.otto.synapse.messagestore.Index index, java.lang.String value)
-
Constructor Details
-
RedisIndexedMessageStore
public RedisIndexedMessageStore(java.lang.String name, int batchSize, int maxMessages, long maxAge, de.otto.synapse.messagestore.Indexer indexer, org.springframework.data.redis.core.RedisTemplate<java.lang.String,java.lang.String> stringRedisTemplate)- Parameters:
name- the name of the message storebatchSize- the size of the batches used to fetch messages from RedismaxMessages- the maximum number of messages stored in the message storemaxAge- maximum number of seconds after that a message will be evictedindexer- theIndexerused to index entities stored in the message storestringRedisTemplate- the RedisTemplate used to access Redis
-
RedisIndexedMessageStore
public RedisIndexedMessageStore(java.lang.String name, int batchSize, int maxMessages, long maxAge, de.otto.synapse.messagestore.Indexer indexer, org.springframework.data.redis.core.RedisTemplate<java.lang.String,java.lang.String> stringRedisTemplate, de.otto.synapse.translator.Encoder<java.lang.String> messageEncoder, de.otto.synapse.translator.Decoder<java.lang.String> messageDecoder)- Parameters:
name- the name of the message storebatchSize- the size of the batches used to fetch messages from RedismaxMessages- the maximum number of messages stored in the message storemaxAge- maximum number of seconds after that a message will be evictedindexer- theIndexerused to index entities stored in the message storestringRedisTemplate- the RedisTemplate used to access RedismessageEncoder- the encoder used to encode messages into the string-representation stored in RedismessageDecoder- the decoder used to decode messages from the string-representation stored in Redis
-
-
Method Details
-
add
public void add(de.otto.synapse.messagestore.MessageStoreEntry entry)- Specified by:
addin interfacede.otto.synapse.messagestore.MessageStore
-
getChannelNames
public java.util.Set<java.lang.String> getChannelNames()- Specified by:
getChannelNamesin interfacede.otto.synapse.messagestore.MessageStore
-
getIndexes
public com.google.common.collect.ImmutableSet<de.otto.synapse.messagestore.Index> getIndexes()- Specified by:
getIndexesin interfacede.otto.synapse.messagestore.MessageStore
-
getLatestChannelPosition
public de.otto.synapse.channel.ChannelPosition getLatestChannelPosition(java.lang.String channelName)- Specified by:
getLatestChannelPositionin interfacede.otto.synapse.messagestore.MessageStore
-
stream
public java.util.stream.Stream<de.otto.synapse.messagestore.MessageStoreEntry> stream()- Specified by:
streamin interfacede.otto.synapse.messagestore.MessageStore
-
stream
public java.util.stream.Stream<de.otto.synapse.messagestore.MessageStoreEntry> stream(de.otto.synapse.messagestore.Index index, java.lang.String value)- Specified by:
streamin interfacede.otto.synapse.messagestore.MessageStore
-
size
public long size()- Specified by:
sizein interfacede.otto.synapse.messagestore.MessageStore
-
clear
public void clear()
-