Skip to main content

Overview

RedisStorage provides a Redis-based storage backend. Ideal for distributed systems, high-performance requirements, and applications needing TTL-based expiration.

Install

Install the Redis storage optional dependency group:
uv pip install "upsonic[redis-storage]"

Basic Usage

from upsonic import Agent, Task
from upsonic.storage.memory import Memory
from upsonic.storage.redis import RedisStorage

storage = RedisStorage(
    db_url="redis://localhost:6379/0",
    db_prefix="myapp",
    expire=86400  # 24 hours TTL
)

memory = Memory(
    storage=storage,
    session_id="session_001",
    user_id="user_123",
    full_session_memory=True,
    summary_memory=True,
    user_analysis_memory=True,
    model="openai/gpt-4o"
)

agent = Agent("openai/gpt-4o", memory=memory)

result1 = agent.do(Task("My name is Alice"))
result2 = agent.do(Task("What's my name?"))
print(result2)  # "Your name is Alice"

Parameters

ParameterTypeDefaultDescription
db_urlstr | NoneNoneRedis connection URL (e.g., redis://localhost:6379/0)
redis_clientRedis | RedisCluster | NoneNonePre-existing Redis client
db_prefixstr"upsonic"Prefix for all Redis keys
expireint | NoneNoneTTL in seconds for all keys
session_tablestr | None"sessions"Session key namespace
user_memory_tablestr | None"user_memories"User memory key namespace
idstr | Noneauto-generatedStorage instance ID

Storage Type

RedisStorage is a synchronous storage implementation. For Redis Cluster support, provide a pre-configured RedisCluster client.

Key Structure

Keys are structured as: {db_prefix}:{table}:{id} Example: myapp:sessions:session_001