Package org.apache.storm.redis.state

## Class RedisKeyValueState<K,​V>

- java.lang.Object
- - org.apache.storm.redis.state.RedisKeyValueState<K,​V>

- All Implemented Interfaces:
    `Iterable<Map.Entry<K,​V>>`, `KeyValueState<K,​V>`, `State`

      public class RedisKeyValueState<K,​V>
      extends Object
      implements KeyValueState<K,​V>

  A redis based implementation that persists the state in Redis.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static NavigableMap<byte[],​byte[]>` | `EMPTY_PENDING_COMMIT_MAP` |
    `static int` | `ITERATOR_CHUNK_SIZE` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `RedisKeyValueState​(String namespace)` |
    `RedisKeyValueState​(String namespace, JedisClusterConfig jedisClusterConfig, Serializer<K> keySerializer, Serializer<V> valueSerializer)` |
    `RedisKeyValueState​(String namespace, JedisPoolConfig poolConfig)` |
    `RedisKeyValueState​(String namespace, JedisPoolConfig poolConfig, Serializer<K> keySerializer, Serializer<V> valueSerializer)` |
    `RedisKeyValueState​(String namespace, RedisCommandsInstanceContainer container, Serializer<K> keySerializer, Serializer<V> valueSerializer)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `commit()` | Persist the current state.
    `void` | `commit​(long txid)` | Commit a previously prepared transaction.
    `V` | `delete​(K key)` | Deletes the value mapped to the key, if there is any.
    `V` | `get​(K key)` | Returns the value mapped to the key.
    `V` | `get​(K key, V defaultValue)` | Returns the value mapped to the key or defaultValue if no mapping is found.
    `Iterator<Map.Entry<K,​V>>` | `iterator()` |
    `void` | `prepareCommit​(long txid)` | Invoked by the framework to prepare a transaction for commit.
    `void` | `put​(K key, V value)` | Maps the value with the key.
    `void` | `rollback()` | Rollback a prepared transaction to the previously committed state.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

- - ### Field Detail

    - #### ITERATOR_CHUNK_SIZE

          public static final int ITERATOR_CHUNK_SIZE

      See Also:
        Constant Field Values

    - #### EMPTY_PENDING_COMMIT_MAP

          public static final NavigableMap<byte[],​byte[]> EMPTY_PENDING_COMMIT_MAP

  - ### Constructor Detail

    - #### RedisKeyValueState

          public RedisKeyValueState​(String namespace)

    - #### RedisKeyValueState

          public RedisKeyValueState​(String namespace,
                                    JedisPoolConfig poolConfig)

    - #### RedisKeyValueState

          public RedisKeyValueState​(String namespace,
                                    JedisPoolConfig poolConfig,
                                    Serializer<K> keySerializer,
                                    Serializer<V> valueSerializer)

    - #### RedisKeyValueState

          public RedisKeyValueState​(String namespace,
                                    JedisClusterConfig jedisClusterConfig,
                                    Serializer<K> keySerializer,
                                    Serializer<V> valueSerializer)

    - #### RedisKeyValueState

          public RedisKeyValueState​(String namespace,
                                    RedisCommandsInstanceContainer container,
                                    Serializer<K> keySerializer,
                                    Serializer<V> valueSerializer)

  - ### Method Detail

    - #### put

          public void put​(K key,
                          V value)

      Description copied from interface: `KeyValueState`
      Maps the value with the key.
      Specified by:
        `put` in interface `KeyValueState<K,​V>`
      Parameters:
        `key` - the key
        `value` - the value

    - #### get

          public V get​(K key)

      Description copied from interface: `KeyValueState`
      Returns the value mapped to the key.
      Specified by:
        `get` in interface `KeyValueState<K,​V>`
      Parameters:
        `key` - the key
      Returns:
        the value or null if no mapping is found

    - #### get

          public V get​(K key,
                       V defaultValue)

      Description copied from interface: `KeyValueState`
      Returns the value mapped to the key or defaultValue if no mapping is found.
      Specified by:
        `get` in interface `KeyValueState<K,​V>`
      Parameters:
        `key` - the key
        `defaultValue` - the value to return if no mapping is found
      Returns:
        the value or defaultValue if no mapping is found

    - #### delete

          public V delete​(K key)

      Description copied from interface: `KeyValueState`
      Deletes the value mapped to the key, if there is any.
      Specified by:
        `delete` in interface `KeyValueState<K,​V>`
      Parameters:
        `key` - the key

    - #### iterator

          public Iterator<Map.Entry<K,​V>> iterator()

      Specified by:
        `iterator` in interface `Iterable<K>`

    - #### prepareCommit

          public void prepareCommit​(long txid)

      Description copied from interface: `State`
      Invoked by the framework to prepare a transaction for commit. It should be possible to commit the prepared state later.

      The same txid can be prepared again, but the next txid cannot be prepared when previous one is not yet committed.

      Specified by:
        `prepareCommit` in interface `State`
      Parameters:
        `txid` - the transaction id

    - #### commit

          public void commit​(long txid)

      Description copied from interface: `State`
      Commit a previously prepared transaction. It should be possible to retrieve a committed state later.
      Specified by:
        `commit` in interface `State`
      Parameters:
        `txid` - the transaction id

    - #### commit

          public void commit()

      Description copied from interface: `State`
      Persist the current state. This is used when the component manages the state.
      Specified by:
        `commit` in interface `State`

    - #### rollback

          public void rollback()

      Description copied from interface: `State`
      Rollback a prepared transaction to the previously committed state.
      Specified by:
        `rollback` in interface `State`