# RedisChatMessageHistory

> **Class** in `langchain_community`

📖 [View in docs](https://reference.langchain.com/python/langchain-community/chat_message_histories/redis/RedisChatMessageHistory)

Chat message history stored in a Redis database.

## Signature

```python
RedisChatMessageHistory(
    self,
    session_id: str,
    url: str = 'redis://localhost:6379/0',
    key_prefix: str = 'message_store:',
    ttl: Optional[int] = None,
)
```

## Description

**Setup:**

Install ``redis`` python package.

.. code-block:: bash

    pip install redis

**Instantiate:**

.. code-block:: python

from langchain_community.chat_message_histories import RedisChatMessageHistory

history = RedisChatMessageHistory(
    session_id = "your-session-id",
    url="redis://your-host:your-port:your-database",  # redis://localhost:6379/0
)

**Add and retrieve messages:**

.. code-block:: python

# Add single message
history.add_message(message)

# Add batch messages
history.add_messages([message1, message2, message3, ...])

# Add human message
history.add_user_message(human_message)

# Add ai message
history.add_ai_message(ai_message)

# Retrieve messages
messages = history.messages

## Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `session_id` | `str` | Yes | str The ID for single chat session. Used to form keys with `key_prefix`. |
| `url` | `str` | No | Optional[str] String parameter configuration for connecting to the redis. (default: `'redis://localhost:6379/0'`) |
| `key_prefix` | `str` | No | Optional[str] The prefix of the key, combined with `session id` to form the key. (default: `'message_store:'`) |
| `ttl` | `Optional[int]` | No | Optional[int] Set the expiration time of `key`, the unit is seconds. (default: `None`) |

## Extends

- `BaseChatMessageHistory`

## Constructors

```python
__init__(
    self,
    session_id: str,
    url: str = 'redis://localhost:6379/0',
    key_prefix: str = 'message_store:',
    ttl: Optional[int] = None,
)
```

| Name | Type |
|------|------|
| `session_id` | `str` |
| `url` | `str` |
| `key_prefix` | `str` |
| `ttl` | `Optional[int]` |


## Properties

- `redis_client`
- `session_id`
- `key_prefix`
- `ttl`
- `key`
- `messages`

## Methods

- [`add_message()`](https://reference.langchain.com/python/langchain-community/chat_message_histories/redis/RedisChatMessageHistory/add_message)
- [`clear()`](https://reference.langchain.com/python/langchain-community/chat_message_histories/redis/RedisChatMessageHistory/clear)

---

[View source on GitHub](https://github.com/langchain-ai/langchain-community/blob/d5ea8358933260ad48dd31f7f8076555c7b4885a/libs/community/langchain_community/chat_message_histories/redis.py#L17)