python如何连接redis

Python连接Redis主要通过redis-py库实现,需注意版本兼容性、连接方式及异常处理;安装后可用redis.Redis()建立单机连接,推荐启用decode_responses=True并使用ConnectionPool提升并发性能,连接后应调用r.ping()验证。

Python 连接 Redis 主要通过 redis-py 官方客户端库实现,步骤简单但需注意版本兼容性、连接方式和异常处理。

安装 redis-py 客户端

使用 pip 安装最新稳定版(支持 Redis 6+ 和 RESP3):

pip install redis

如需连接 Redis Cluster,可额外安装:
pip install redis-py-cluster

基础连接方式(单机 Redis)

推荐使用 redis.Redis() 实例化连接,支持多种初始化参数:

  • hostport:指定 Redis 服务地址与端口(默认 localhost:6379
  • db:选择数据库编号(默认 db=0
  • password:如有密码,传入字符串(或使用 username + password 支持 ACL)
  • decode_responses=True:让返回的字符串自动解码为 Python str(避免 bytes 类型)

示例代码:

import redis

r = redis.Redis( host='localhost', port=6379, db=0, password=None, # 若有密码请填写 decode_responses=True )

测试连通性

r.ping() # 返回 True 表示连接成功

使用连接池提升性能

在 Web 应用或高并发场景中,应复用连接而非每次新建。redis-py 默认启用连接池,也可显式配置:

  • max_connections:最大空闲连接数
  • socket_timeout:读写超时(秒)
  • health_check_interval:定期心跳检测间隔(建议设为 30 秒以上)

示例:

pool = redis.ConnectionPool(
    host='localhost',
    port=6379,
    db=0,
    max_connections=20,
    socket_timeout=5,
    health_check_interval=30
)
r = redis.Redis(connection_pool=pool)

常见问题与验证

连接失败时,优先检查以下几点:

  • Redis 服务是否正在运行(redis-cli ping 测试)
  • 防火墙或网络策略是否放行 6379 端口
  • 密码或用户名是否正确(Redis 6+ 启用 ACL 时需确认权限)
  • Python 进程是否有 DNS 解析权限(若用域名连接)

连接后建议立即执行 r.ping()r.info() 验证可用性,捕获 redis.ConnectionErrorredis.AuthenticationError 做针对性处理。