// the find
redis/redis-py
Redis Python client
The official Redis Python client, maintained by Redis Inc. Covers the full Redis command surface including cluster, sentinel, pub/sub, streams, search, JSON, time series, and probabilistic data structures. If you're using Redis from Python, this is what you use — there's no real alternative.
Full async support (redis.asyncio) with feature parity to the sync client, so you're not choosing between async and completeness. hiredis integration is automatic when installed, giving a meaningful throughput boost for free with zero code changes. The new multi-database client handles Active-Active failover with configurable strategies, which used to require application-level workarounds. RESP3 migration is handled gracefully — legacy_responses=False lets you opt into unified response shapes incrementally without a flag day.
The library has grown into a monorepo of Redis modules (search, JSON, time series, bloom filters, vector sets) that all ship together regardless of which modules your Redis instance actually has — you pay the import weight even if you use none of it. The sync/async code duplication is substantial; the codebase has a .agent/sync_async_deduplication_analysis.md which tells you they know it's a problem but haven't solved it. Type hints are uneven — there are overload guides in .agent/ suggesting the typing story is still being worked out, not finished. Documentation lives on readthedocs but the Jupyter notebook examples in docs/examples/ are the main reference for anything non-trivial, which means you're running notebooks to understand connection pooling.