aioredis:Python 异步 Redis 库的归宿
aioredis:Python 异步 Redis 库的归宿
aioredis 在 GitHub 上有 2,288 Star,曾经是 Python 生态中最成熟的 asyncio Redis 客户端。
2022 年,这个项目迎来了一个重要的转折:它被 redis-py 官方合并了。也就是说,你不再需要单独安装 aioredis,从 redis 4.2.0rc1 开始,异步 Redis 操作直接变成了 redis-py 的原生能力。
1、 它解决了什么问题
在没有 aioredis 的年代,如果你想在 asyncio 应用里访问 Redis,要么用同步客户端(阻塞事件循环),要么自己对着 Redis 协议写一套异步解析器。
aioredis 把这层脏活全干了。它提供和 redis-py 几乎一模一样的 API,但全程异步,不会阻塞事件循环。GET/SET、发布订阅、管道、事务、哨兵、ACL、Stream,这些 Redis 功能它都覆盖到了。

2、 合并进 redis-py 意味着什么
这对 Python 社区来说是个好消息。
以前 aioredis 作为社区项目独立维护,虽然用的人多,但维护者精力有限。合并之后,aioredis 成了 redis-py 的 asyncio 子模块,由 Redis 官方团队接盘。这对稳定性和长期维护都是个保障。
迁移的成本几乎为零。你只需要把 import 改成:
from redis import asyncio as aioredis
代码逻辑一行不用动。项目作者 Andrew 自己也说,他会继续在 redis-py 那边维护 asyncio 相关的东西,把原来遗留的一些 bug 慢慢修掉。
3、 功能清单

支持 hiredis 解析器和纯 Python 解析器两种模式。hiredis 用 C 写的,解析性能更高,生产环境推荐加装。纯 Python 解析器则适合不想引入额外依赖的场景。
连接池、管道、事务(Multi/Exec)、发布订阅、哨兵、ACL、Stream 全部支持。测试覆盖了 Python 3.6 到 3.10,Redis 服务端 5.0 和 6.0 都跑过了。
唯一没有的是 Redis Cluster 支持。如果你的业务强依赖集群模式,目前只能通过低层 API 自己封装,或者另选方案。
4、 安装和使用
如果你还在用旧版本的 redis-py,单独安装 aioredis 也能用:
pip install aioredis
pip install hiredis
但更建议直接升级到 redis-py 4.2+,用官方的 asyncio 模块。依赖只有 async-timeout 和 typing-extensions,非常轻量。
5、 适合这些人
- 用 FastAPI、aiohttp、Sanic 等异步框架搭建 Web 服务的团队
- 需要高并发访问 Redis、不想让同步 IO 成为瓶颈的场景
- 已经在用 redis-py、想平滑迁移到异步模式的开发者
项目采用 MIT 协议,商用完全没问题。

浙公网安备 33010602011771号