Class 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

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void add​(de.otto.synapse.messagestore.MessageStoreEntry entry)  
      void clear()  
      java.util.Set<java.lang.String> getChannelNames()  
      com.google.common.collect.ImmutableSet<de.otto.synapse.messagestore.Index> getIndexes()  
      de.otto.synapse.channel.ChannelPosition getLatestChannelPosition​(java.lang.String channelName)  
      long size()  
      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)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface de.otto.synapse.messagestore.MessageStore

        close, getLatestChannelPosition, isCompacting
    • Constructor Detail

      • 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 store
        batchSize - the size of the batches used to fetch messages from Redis
        maxMessages - the maximum number of messages stored in the message store
        maxAge - maximum number of seconds after that a message will be evicted
        indexer - the Indexer used to index entities stored in the message store
        stringRedisTemplate - 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 store
        batchSize - the size of the batches used to fetch messages from Redis
        maxMessages - the maximum number of messages stored in the message store
        maxAge - maximum number of seconds after that a message will be evicted
        indexer - the Indexer used to index entities stored in the message store
        stringRedisTemplate - the RedisTemplate used to access Redis
        messageEncoder - the encoder used to encode messages into the string-representation stored in Redis
        messageDecoder - the decoder used to decode messages from the string-representation stored in Redis
    • Method Detail

      • add

        public void add​(de.otto.synapse.messagestore.MessageStoreEntry entry)
        Specified by:
        add in interface de.otto.synapse.messagestore.MessageStore
      • getChannelNames

        public java.util.Set<java.lang.String> getChannelNames()
        Specified by:
        getChannelNames in interface de.otto.synapse.messagestore.MessageStore
      • getIndexes

        public com.google.common.collect.ImmutableSet<de.otto.synapse.messagestore.Index> getIndexes()
        Specified by:
        getIndexes in interface de.otto.synapse.messagestore.MessageStore
      • getLatestChannelPosition

        public de.otto.synapse.channel.ChannelPosition getLatestChannelPosition​(java.lang.String channelName)
        Specified by:
        getLatestChannelPosition in interface de.otto.synapse.messagestore.MessageStore
      • stream

        public java.util.stream.Stream<de.otto.synapse.messagestore.MessageStoreEntry> stream()
        Specified by:
        stream in interface de.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:
        stream in interface de.otto.synapse.messagestore.MessageStore
      • size

        public long size()
        Specified by:
        size in interface de.otto.synapse.messagestore.MessageStore
      • clear

        public void clear()