如何在Python程序中连接Redis数据库
Python 连接 Redis 实现方案
前置准备
首先安装官方维护的Python Redis客户端redis-py,直接执行pip安装命令即可:
pip install redis # 如果你的环境里pip默认指向Python2,Python3请用pip3 pip3 install redis
基础连接写法
单实例直连的方式适合简单脚本、低流量场景:
import redis # 初始化连接 client = redis.Redis( host="127.0.0.1", # 替换为你的Redis服务实际部署地址 port=6379, # Redis默认服务端口为6379,有自定义修改就替换为实际端口 db=0, # Redis默认拆分16个独立数据库,编号0-15,按需选择即可 password="your_redis_password", # 服务没设置密码就删掉这行配置 decode_responses=True # 开启后返回值会自动解码为字符串格式,不开启默认返回bytes类型 ) # 调用ping()方法验证连通性,连接正常会返回True print(client.ping())
生产环境推荐:连接池连接
业务并发较高的场景不要每次操作都新建连接,用连接池统一管理连接生命周期,能大幅降低频繁创建销毁连接带来的性能开销:
注意连接池要初始化为全局单例,不要每次处理请求都新建连接池,否则会产生大量闲置连接拖垮Redis服务。
import redis # 全局只初始化一次连接池 redis_pool = redis.ConnectionPool( host="127.0.0.1", port=6379, db=0, password="your_redis_password", decode_responses=True, max_connections=200, # 最大连接数根据业务实际并发量调整 socket_connect_timeout=3, # 连接超时时间,单位秒 socket_timeout=3 # 读写操作超时时间,单位秒 ) # 业务逻辑中直接从连接池获取连接实例使用即可 client = redis.Redis(connection_pool=redis_pool) # 简单读写测试 client.set("demo_key", "redis connect success") print(client.get("demo_key")) # 输出 redis connect success
常见问题排查
- 连接抛出
ConnectionRefusedError:优先检查Redis服务是否正常启动、地址端口配置是否正确、服务器防火墙/云安全组是否放开Redis端口的访问权限 - 抛出认证类错误:核对密码配置是否正确、Redis配置中是否绑定了允许访问的IP白名单、对应账号是否有目标数据库的操作权限
- 返回值是bytes类型:要么初始化连接时加上
decode_responses=True开启自动转码,要么拿到返回值后手动调用.decode("utf-8")转成字符串 - 对接云厂商托管Redis连接失败:大部分云Redis要求SSL加密连接,初始化时加上
ssl=True配置再尝试即可
内容的提问来源于stack exchange,提问作者shirin ghasemi
相关产品推荐
相关产品推荐

