Skip to main content
The Redis tool lets an agent read, write, and cache key-value data in Redis.

Overview

Redis tool allows you to interact with Redis for caching, key-value storage, and pub/sub messaging.

Installation

pip install "praisonai[tools]"

Environment Variables

export REDIS_HOST=localhost
export REDIS_PORT=6379
export REDIS_PASSWORD=your_password  # Optional

Quick Start

1

Simple Usage

from praisonai_tools import RedisTool

# Initialize
redis = RedisTool(host="localhost", port=6379)

# Set and get values
redis.set("key", "value")
value = redis.get("key")
print(value)
2

With Configuration

Use the same tool with an agent — see Usage with Agent below, or pass env vars and options from the sections above.

How It Works

Usage with Agent

from praisonaiagents import Agent
from praisonai_tools import RedisTool

redis = RedisTool(host="localhost", port=6379)

agent = Agent(
    name="CacheManager",
    instructions="You manage cached data using Redis.",
    tools=[redis]
)

response = agent.chat("Store user preferences for user123")
print(response)

Available Methods

get(key)

Get a value by key.
from praisonai_tools import RedisTool

redis = RedisTool(host="localhost")
value = redis.get("user:123:name")

set(key, value, ttl=None)

Set a key-value pair with optional TTL.
redis.set("session:abc", "data", ttl=3600)  # Expires in 1 hour

delete(key)

Delete a key.
redis.delete("old_key")

keys(pattern)

Find keys matching a pattern.
keys = redis.keys("user:*")

hget/hset

Hash operations.
redis.hset("user:123", "name", "Alice")
name = redis.hget("user:123", "name")

Docker Setup

docker run -d --name redis \
    -p 6379:6379 \
    redis:7

Common Errors

ErrorCauseSolution
redis not installedMissing dependencyRun pip install redis
Connection refusedRedis not runningStart Redis server
NOAUTHAuthentication requiredProvide password

Best Practices

Read REDIS_PASSWORD from the environment instead of hard-coding it in the tool call.
set(key, value, ttl=3600) expires keys automatically. Use TTLs so agent-written cache entries do not grow unbounded.
Namespace keys (e.g. user:123:name) so agents can filter with keys(pattern) without scanning the whole store.

MongoDB

NoSQL database

PostgreSQL

SQL database

Upstash

Serverless Redis