Toggle Menu
Prev Up Next

# `langchain_community.storage.redis`.RedisStore

class langchain_community.storage.redis.RedisStore(*, client: Optional[Any] = None, redis_url: Optional[str] = None, client_kwargs: Optional[dict] = None, ttl: Optional[int] = None, namespace: Optional[str] = None)

  BaseStore implementation using Redis as the underlying store.

  Examples

  Create a RedisStore instance and perform operations on it:

      # Instantiate the RedisStore with a Redis connection
      from langchain_community.storage import RedisStore
      from langchain_community.utilities.redis import get_client

      client = get_client('redis://localhost:6379')
      redis_store = RedisStore(client)

      # Set values for keys
      redis_store.mset([("key1", b"value1"), ("key2", b"value2")])

      # Get values for keys
      values = redis_store.mget(["key1", "key2"])
      # [b"value1", b"value2"]

      # Delete keys
      redis_store.mdelete(["key1"])

      # Iterate over keys
      for key in redis_store.yield_keys():
          print(key)  # noqa: T201

  Initialize the RedisStore with a Redis connection.

  Must provide either a Redis client or a redis_url with optional client_kwargs.

  Parameters

    - client (Any) – A Redis connection instance

    - redis_url (Optional[str]) – redis url

    - client_kwargs (Optional[dict]) – Keyword arguments to pass to the Redis client

    - ttl (Optional[int]) – time to expire keys in seconds if provided, if None keys will never expire

    - namespace (Optional[str]) – if provided, all keys will be prefixed with this namespace

  Methods

  `__init__`(*[, client, redis_url, ...]) | Initialize the RedisStore with a Redis connection.
  `amdelete`(keys) | Delete the given keys and their associated values.
  `amget`(keys) | Get the values associated with the given keys.
  `amset`(key_value_pairs) | Set the values for the given keys.
  `ayield_keys`(*[, prefix]) | Get an iterator over keys that match the given prefix.
  `mdelete`(keys) | Delete the given keys.
  `mget`(keys) | Get the values associated with the given keys.
  `mset`(key_value_pairs) | Set the given key-value pairs.
  `yield_keys`(*[, prefix]) | Yield keys in the store.

  __init__(*, client: Optional[Any] = None, redis_url: Optional[str] = None, client_kwargs: Optional[dict] = None, ttl: Optional[int] = None, namespace: Optional[str] = None) → None

    Initialize the RedisStore with a Redis connection.

    Must provide either a Redis client or a redis_url with optional client_kwargs.

    Parameters

      - client (Optional[Any]) – A Redis connection instance

      - redis_url (Optional[str]) – redis url

      - client_kwargs (Optional[dict]) – Keyword arguments to pass to the Redis client

      - ttl (Optional[int]) – time to expire keys in seconds if provided, if None keys will never expire

      - namespace (Optional[str]) – if provided, all keys will be prefixed with this namespace

    Return type

      None

  async amdelete(keys: Sequence[K]) → None

    Delete the given keys and their associated values.

    Parameters

      keys (Sequence[K]) – A sequence of keys to delete.

    Return type

      None

  async amget(keys: Sequence[K]) → List[Optional[V]]

    Get the values associated with the given keys.

    Parameters

      keys (Sequence[K]) – A sequence of keys.

    Returns

      A sequence of optional values associated with the keys. If a key is not found, the corresponding value will be None.

    Return type

      List[Optional[V]]

  async amset(key_value_pairs: Sequence[Tuple[K, V]]) → None

    Set the values for the given keys.

    Parameters

      key_value_pairs (Sequence[Tuple[K, V]]) – A sequence of key-value pairs.

    Return type

      None

  async ayield_keys(*, prefix: Optional[str] = None) → Union[AsyncIterator[K], AsyncIterator[str]]

    Get an iterator over keys that match the given prefix.

    Parameters

      prefix (str) – The prefix to match.

    Returns

      An iterator over keys that match the given prefix.

      This method is allowed to return an iterator over either K or str depending on what makes more sense for the given store.

    Return type

      Iterator[K | str]

  mdelete(keys: Sequence[str]) → None

    Delete the given keys.

    Parameters

      keys (Sequence[str]) –

    Return type

      None

  mget(keys: Sequence[str]) → List[Optional[bytes]]

    Get the values associated with the given keys.

    Parameters

      keys (Sequence[str]) –

    Return type

      List[Optional[bytes]]

  mset(key_value_pairs: Sequence[Tuple[str, bytes]]) → None

    Set the given key-value pairs.

    Parameters

      key_value_pairs (Sequence[Tuple[str, bytes]]) –

    Return type

      None

  yield_keys(*, prefix: Optional[str] = None) → Iterator[str]

    Yield keys in the store.

    Parameters

      prefix (Optional[str]) –

    Return type

      Iterator[str]

# Examples using RedisStore

- redis.md