Class RedisKeyValueStore

  • All Implemented Interfaces:
    KeyValueStore, KeyValueStoreProvider

    public class RedisKeyValueStore
    extends AbstractKeyValueStoreProvider
    Redis implementation of a Key/Value Store Provider.

    The following configuration properties are available:

    • namespace: the Redis namespace to use for keys (in addition to the global Redis namespace configured in the Redis service). DEPRECATED since 10.10, use the descriptor's <namespace> element instead.
    Since:
    9.1
    • Field Detail

      • ONE

        protected static final Long ONE
      • namespace

        protected String namespace
      • compareAndSetSHA

        protected byte[] compareAndSetSHA
      • compareAndDelSHA

        protected byte[] compareAndDelSHA
      • compareNullAndSetSHA

        protected byte[] compareNullAndSetSHA
    • Constructor Detail

      • RedisKeyValueStore

        public RedisKeyValueStore()
    • Method Detail

      • getBytes

        protected static byte[] getBytes​(String key)
      • keyStream

        public Stream<String> keyStream()
        Description copied from interface: KeyValueStoreProvider
        Returns a Stream of the keys contained in this Key/Value store provider.

        This operation may be slow and should only be used for management or debug purposes.

        Returns:
        the stream of keys
      • keyStream

        public Stream<String> keyStream​(String prefix)
        Description copied from interface: KeyValueStoreProvider
        Returns a Stream of the keys with the given prefix contained in this Key/Value store provider.

        This operation may be slow and should only be used for management or debug purposes.

        Returns:
        the stream of keys
      • ecapeGlob

        public static String ecapeGlob​(String prefix)
        Escape glob-like wildcards and [] char ranges with a backslash.
      • close

        public void close()
        Description copied from interface: KeyValueStoreProvider
        Closes this Key/Value store provider.
      • clear

        public void clear()
        Description copied from interface: KeyValueStoreProvider
        Clears the content of this Key/Value store provider.
      • put

        public void put​(String key,
                        byte[] value,
                        long ttl)
        Description copied from interface: KeyValueStore
        Sets the value associated to the key, and a TTL.
        Parameters:
        key - the key
        value - the value, which may be null
        ttl - the TTL, in seconds (0 for infinite)
      • get

        public byte[] get​(String key)
        Description copied from interface: KeyValueStore
        Retrieves the value associated to the key.
        Parameters:
        key - the key
        Returns:
        the value, or null if there is no value
      • getValuesForKeys

        protected List<byte[]> getValuesForKeys​(Collection<String> keys)
        Since:
        9.10
      • setTTL

        public boolean setTTL​(String key,
                              long ttl)
        Description copied from interface: KeyValueStore
        Sets the TTL for an existing key.
        Parameters:
        key - the key
        ttl - the TTL, in seconds (0 for infinite)
        Returns:
        true if the TTL has been set, or false if the key does not exist
      • compareAndSet

        public boolean compareAndSet​(String key,
                                     byte[] expected,
                                     byte[] value,
                                     long ttl)
        Description copied from interface: KeyValueStore
        Atomically sets the value associated to the key to the given value, with the given TTL, if the current value is the expected value.

        Note value comparison is done by value and not by reference.

        Parameters:
        key - the key
        expected - the expected value, which may be null
        value - the updated value, which may be null
        ttl - the TTL, in seconds (0 for infinite)
        Returns:
        true if the value was updated, or false if not (the expected value was not found)