Interface KeyValueStore

All Known Subinterfaces:
KeyValueStoreProvider
All Known Implementing Classes:
AbstractKeyValueStoreProvider, MemKeyValueStore, MongoDBKeyValueStore, SQLKeyValueStore

public interface KeyValueStore
Key/Value Store.

This is the interface for a Key/Value store, which stores simple values associated to keys.

A Key/Value store is thread-safe.

Since:
9.1
  • Method Summary

    Modifier and Type
    Method
    Description
    long
    addAndGet(String key, long delta)
    Atomically adds the delta to the value associated to the key, interpreted as a long represented as a string.
    boolean
    compareAndSet(String key, byte[] expected, byte[] value)
    Atomically sets the value associated to the key to the given value if the current value is the expected value.
    boolean
    compareAndSet(String key, byte[] expected, byte[] value, long ttl)
    Atomically sets the value associated to the key to the given value, with the given TTL, if the current value is the expected value.
    boolean
    compareAndSet(String key, String expected, String value)
    Atomically sets the value associated to the key to the given value if the current value is the expected value.
    boolean
    compareAndSet(String key, String expected, String value, long ttl)
    Atomically sets the value associated to the key to the given value, with the given TTL, if the current value is the expected value.
    byte[]
    get(String key)
    Retrieves the value associated to the key.
    Map<String,byte[]>
    Retrieves the key/value map associated with the keys.
    Retrieves the value associated to the key.
    Retrieves the key/value map associated with the keys.
    Retrieves the value associated to the key.
    Retrieves the key/value map associated with the keys.
    void
    put(String key, byte[] value)
    Sets the value associated to the key.
    void
    put(String key, byte[] value, long ttl)
    Sets the value associated to the key, and a TTL.
    void
    put(String key, Long value)
    Sets the value associated to the key.
    void
    put(String key, Long value, long ttl)
    Sets the value associated to the key.
    void
    put(String key, String value)
    Sets the value associated to the key.
    void
    put(String key, String value, long ttl)
    Sets the value associated to the key, and a TTL.
    boolean
    setTTL(String key, long ttl)
    Sets the TTL for an existing key.
  • Method Details

    • put

      void put(String key, byte[] value)
      Sets the value associated to the key.
      Parameters:
      key - the key
      value - the value, which may be null
    • put

      void put(String key, String value)
      Sets the value associated to the key.
      Parameters:
      key - the key
      value - the value, which may be null
      Since:
      9.3
    • put

      void put(String key, Long value)
      Sets the value associated to the key.
      Parameters:
      key - the key
      value - the value, which may be null
      Since:
      10.2
    • put

      void put(String key, byte[] value, long ttl)
      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)
      Since:
      9.3
    • put

      void put(String key, String value, long ttl)
      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)
      Since:
      9.3
    • put

      void put(String key, Long value, long ttl)
      Sets the value associated to the key.
      Parameters:
      key - the key
      value - the value, which may be null
      ttl - the TTL, in seconds (0 for infinite)
      Since:
      10.2
    • setTTL

      boolean setTTL(String key, long ttl)
      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
      Since:
      9.3
    • get

      byte[] get(String key)
      Retrieves the value associated to the key.
      Parameters:
      key - the key
      Returns:
      the value, or null if there is no value
    • getString

      String getString(String key)
      Retrieves the value associated to the key.
      Parameters:
      key - the key
      Returns:
      the value, or null if there is no value
      Throws:
      IllegalArgumentException - if the value cannot be returned as a String
      Since:
      9.3
    • getLong

      Long getLong(String key) throws NumberFormatException
      Retrieves the value associated to the key.
      Parameters:
      key - the key
      Returns:
      the value, or null if there is no value
      Throws:
      NumberFormatException - if the value cannot be returned as a Long
      Since:
      10.2
    • get

      Map<String,byte[]> get(Collection<String> keys)
      Retrieves the key/value map associated with the keys.
      Parameters:
      keys - the keys
      Returns:
      the key/value map
      Since:
      9.10
    • getStrings

      Map<String,String> getStrings(Collection<String> keys)
      Retrieves the key/value map associated with the keys.
      Parameters:
      keys - the keys
      Returns:
      the key/value map
      Throws:
      IllegalArgumentException - if one of the values cannot be returned as a String
      Since:
      9.10
    • getLongs

      Retrieves the key/value map associated with the keys.
      Parameters:
      keys - the keys
      Returns:
      the key/value map
      Throws:
      NumberFormatException - if one of the values cannot be returned as a Long
      Since:
      10.2
    • compareAndSet

      boolean compareAndSet(String key, byte[] expected, byte[] value)
      Atomically sets the value associated to the key to the given value 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
      Returns:
      true if the value was updated, or false if not (the expected value was not found)
    • compareAndSet

      boolean compareAndSet(String key, byte[] expected, byte[] value, long ttl)
      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)
      Since:
      9.3
    • compareAndSet

      boolean compareAndSet(String key, String expected, String value)
      Atomically sets the value associated to the key to the given value 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
      Returns:
      true if the value was updated, or false if not (the expected value was not found)
      Since:
      9.3
    • compareAndSet

      boolean compareAndSet(String key, String expected, String value, long ttl)
      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)
      Since:
      9.3
    • addAndGet

      long addAndGet(String key, long delta)
      Atomically adds the delta to the value associated to the key, interpreted as a long represented as a string.

      If the value does not exist (if get(java.lang.String) would return null), it is interpreted as 0.

      Parameters:
      key - the key
      delta - the delta to add
      Returns:
      the new value
      Throws:
      NumberFormatException - if the existing value cannot be interpreted as a long
      Since:
      10.2