redis-py

The official Python client for Redis, with sync, asyncio, cluster, and Sentinel support.

SDK
PyPI
v8.1.0
13,609stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
94/100Excellent
Development Activity100
Maintenance84
Community92
Maturity60
Momentum40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
87/100Excellent
Architecture90
Code Quality88
Innovation82
Learning Curve85

redis-py is the official Python client library for Redis, maintained by Redis Inc. It implements the full Redis command surface for strings, hashes, sets, sorted sets, streams, and pub/sub, alongside module command mixins for RedisJSON, RediSearch, TimeSeries, Bloom filters, and vector sets.

It ships both a synchronous, threading-based client and an asyncio-native client under redis.asyncio that share the same API, plus dedicated RedisCluster and Sentinel classes for sharded and high-availability deployments. Connection pooling, pipelining, Lua scripting, client-side caching, and configurable RESP2/RESP3 wire protocol support round out the package.

What You Get

  • Full command coverage — every core Redis command (strings, hashes, sets, sorted sets, streams, pub/sub, scripting) plus JSON, Search, TimeSeries, Bloom, and vector-set module commands.
  • Sync and async clients — a threading-based redis.Redis client and an asyncio-native redis.asyncio.Redis client sharing the same API surface.
  • Cluster and Sentinel support — RedisCluster for sharded deployments with MOVED/ASK redirection, and Sentinel for automatic primary discovery and failover.
  • Connection pooling and pipelining — configurable ConnectionPool/BlockingConnectionPool, MULTI/EXEC pipelines, and optional hiredis-accelerated response parsing.
  • RESP3 and client-side caching — opt-in RESP3 protocol support with built-in client-side caching and a documented migration path away from legacy RESP2 response shapes.

Common Use Cases

  • Caching layer for a web application - store computed API responses or session data in Redis with TTLs to cut database load.
  • Distributed locks and rate limiting - use redis-py’s Lock primitive and atomic command support to coordinate work across multiple app instances.
  • Pub/Sub messaging between services - fan out real-time events to subscribers over Redis channels without standing up a separate message broker.
  • Vector search and RAG pipelines - use the vector-set and RediSearch command mixins to store embeddings and run similarity queries directly against Redis.

Under The Hood

Architecture: redis-py structures the client around a small set of composable layers: redis/connection.py (3,868 lines) implements Connection, ConnectionPool, and BlockingConnectionPool, handling socket/TLS setup, RESP2/RESP3 parsing via _parsers/, and reconnection/backoff logic from redis/retry.py and redis/backoff.py. redis/client.py (2,279 lines) defines Redis/StrictRedis, which mix in command implementations from redis/commands/core.py (12,500+ lines) plus module-specific mixins under redis/commands/{json,search,bf,timeseries,vectorset}/. redis/cluster.py (5,000+ lines) reimplements slot-aware routing and MOVED/ASK redirection on top of the same connection layer, and redis/sentinel.py adds Sentinel-based primary discovery. The entire sync surface is mirrored under redis/asyncio/ with asyncio-native connection and client classes sharing the same command mixins, so switching between sync and async code paths requires minimal application-level changes.

Tech Stack: The library targets Python 3.10+ (per pyproject.toml) and ships as a pure-Python package built with hatchling; runtime dependencies are minimal — only async-timeout on older Python versions — with everything else (hiredis for compiled response parsing, xxhash, cryptography/pyopenssl/requests for OCSP, PyJWT, pybreaker, OpenTelemetry) declared as optional extras (e.g. pip install redis[hiredis]), keeping the core install lightweight. Type checking is configured via .mypy.ini, and the package ships a py.typed marker for downstream type checkers.

Code Quality: Test coverage is substantial: tests/ contains 147 files and roughly 2,769 test functions covering standalone, cluster, Sentinel, asyncio, and module (JSON/Search/TimeSeries) command paths, run via pytest with markers like fixed_client to control fixture reuse. Error handling is centralized in redis/exceptions.py, which defines a typed RedisError hierarchy (ConnectionError, TimeoutError, AuthenticationError, etc.) carrying a categorical error_type and optional status_code, giving callers a consistent way to distinguish network, TLS, auth, and server errors. CI under .github/workflows/ (including a dedicated integration.yaml) runs the suite against real Redis server versions.

API Design: The public API mirrors Redis’s own command vocabulary directly (r.set, r.hset, r.ft().search()), so developers already familiar with Redis need little translation; a basic Redis(host=..., port=..., db=...) call after pip install redis is enough to get started, with ConnectionPool and pipeline() available but not required. Recent releases introduced a deliberate migration path — legacy_responses and protocol=3 flags let existing applications keep RESP2-shaped Python responses while opting into RESP3 wire behavior gradually, documented explicitly in the README rather than forced as a breaking change. The tradeoff is real surface-area complexity: client.py and cluster.py are each thousands of lines, and changes like the client-side default search dialect are called out as needing care when upgrading.

Used by 38 apps in this directory

TypeScript
59%
Other

agenta

Developer Tools · Devops · AI Development

4,489

The open-source LLMOps platform unifying prompt engineering, evaluation, and observability for teams building reliable LLM applications.

View details
91
Repo Health
77
Technical
67
Dependency
Built with
TypeScript59%
Python39%
Updated today
Python
100%
Apache 2.0

Agno

Devops · AI Development · Automation

41,774

Build, run, and manage agent platforms with a full production stack — SDK, runtime, and control plane included.

View details
93
Repo Health
87
Technical
67
Dependency
Built with
Python100%
Updated today
Python
90%
Apache 2.0

Apache Airflow

Data Engineering

46,530

Define, schedule, and monitor complex data workflows as Python code — with a powerful UI, 80+ provider integrations, and battle-tested scalability across thousands of production deployments.

View details
96
Repo Health
89
Technical
66
Dependency
Built with
Python90%
Updated today
Python
97%
MIT

auto-news

AI Assistants · Productivity

906

An AI-powered personal news aggregator that filters multi-source feeds through LLMs and delivers curated, noise-free summaries to your Notion workspace.

View details
43
Repo Health
53
Technical
66
Dependency
Built with
Python97%
Updated 1 years ago
Python
62%
MIT

AutoGen

AI Development · Automation

60,518

Build autonomous and human-in-the-loop multi-agent AI systems with a layered, event-driven Python and .NET framework pioneered at Microsoft Research.

View details
57
Repo Health
78
Technical
75
Dependency
Built with
Python62%
C#25%
TypeScript12%
Updated 4 months ago
Python
68%
Other

AutoGPT

Automation · Productivity · AI Assistants

186,687

Build, deploy, and run autonomous AI agents that automate complex multi-step workflows using a visual block-based graph editor.

View details
93
Repo Health
78
Technical
67
Dependency
Built with
Python68%
TypeScript31%
Updated today
Python
68%
Other

Baserow

No Code Platforms · Databases

5,635

Open-source no-code platform to build databases, apps, automations, and AI agents — self-hosted or cloud, with full data ownership.

View details
89
Repo Health
84
Technical
68
Dependency
Built with
Python68%
JavaScript15%
Vue12%
Updated today
C++
69%
Apache 2.0

ClickHouse

Databases · Analytics · Data Engineering

49,325

Open-source column-oriented database that delivers real-time analytical queries on petabyte-scale data with millisecond latency.

View details
95
Repo Health
90
Technical
68
Dependency
Built with
C++69%
Python13%
Updated today
Python
44%
MIT

/dev/push

Developer Tools · Devops

4,742

Self-hosted, open-source Vercel alternative that deploys Python, Node.js, PHP, and any Docker-compatible app from a Git push, with zero-downtime rollouts and real-time logs.

View details
44
Repo Health
68
Technical
73
Dependency
Built with
Python44%
HTML31%
CSS17%
Updated 5 months ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers

Search