redis-py在Python中连接与使用Redis全过程

 更新时间:2025年11月04日 10:00:22   作者:Hello.Reader  
文章介绍了如何在Python项目中安装和使用redis-py库连接Redis,包括连接测试、核心功能、高级用法和配置优化,还提供了官方文档和示例代码的链接,帮助开发者进一步学习和深入应用Redis

一、安装 redis-py

首先,确保已经安装并启动了一台 Redis 服务。请参阅官方文档完成 Redis 服务器的安装与启动。

在项目环境中执行:

pip install redis

Tip:如果希望获得更快的响应解析性能,可以额外安装 hiredis

pip install redis[hiredis]

如果系统中存在 hiredis>=1.0,redis-py 会自动使用它进行底层二进制协议解析,无需修改代码。

注意:Python 3.12 以后的标准库移除了 distutils,旧版本的 redis-py 可能会安装失败,建议使用最新稳定版 redis-py。

二、连接到 Redis 并测试

在代码中导入并创建客户端实例:

import redis

# 默认连接到 localhost:6379,decode_responses=True 可直接返回字符串
r = redis.Redis(host='localhost', port=6379, decode_responses=True)
  • hostport:Redis 服务地址与端口;
  • decode_responses=True:将返回的 bytes 自动解码为 str。

示例:字符串读写

# 写入
r.set('foo', 'bar')      # 返回 True

# 读取
value = r.get('foo')     # 返回 'bar'

示例:Hash(字典)读写

# 批量写入 Hash
r.hset('user:123', mapping={
    'name': 'Alice',
    'email': 'alice@example.com',
    'age': 30
})

# 读取整个 Hash
session = r.hgetall('user:123')
# 返回 {'name': 'Alice', 'email': 'alice@example.com', 'age': '30'}

三、核心特性速览

功能方法示例
字符串r.set(), r.get()
列表 Listr.lpush(), r.rpop()
集合 Setr.sadd(), r.smembers()
有序集合 ZSetr.zadd(), r.zrange()
哈希 Hashr.hset(), r.hgetall()
管道 Pipelinepipe = r.pipeline(); pipe.set(...); pipe.execute()
事务 Transactionwith r.pipeline() as pipe: pipe.multi(); …
发布/订阅 Pub/Subpub = r.pubsub(); pub.subscribe('chan')
扫描迭代 SCANr.scan_iter(), r.hscan_iter()

更多高级用法,请参考 redis-py 官方文档。

四、常见配置与调优

连接池

pool = redis.ConnectionPool(host='localhost', port=6379, db=0)
r = redis.Redis(connection_pool=pool)

复用 TCP 连接、提升并发性能。

超时与重试

r = redis.Redis(socket_timeout=5, socket_connect_timeout=5, retry_on_timeout=True)

防止网络抖动导致阻塞。

SSL/TLS 连接

r = redis.Redis(
    host='redis.example.com', port=6380,
    ssl=True, ssl_certfile='client.crt', ssl_keyfile='client.key',
    ssl_ca_certs='ca.pem'
)

在云环境或生产集群中启用加密传输。

五、深入学习资源

通过上述步骤,你已能够在 Python 应用中快速集成并高效使用 Redis。接下来,可进一步探索管道、事务、发布/订阅模式,以及 Redis Streams、Lua 脚本与集群模式等进阶特性,以满足更复杂的业务需求。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Pytest框架之fixture详解(一)

    Pytest框架之fixture详解(一)

    本文详细讲解了Pytest框架之fixture,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • 基于Python制作ASCII码转换器

    基于Python制作ASCII码转换器

    ASCII码是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。本文将利用Python制作一个ASCII码转换器,感兴趣的可以动手试一试
    2022-02-02
  • Python中返回字典键的值的values()方法使用

    Python中返回字典键的值的values()方法使用

    这篇文章主要介绍了Python中返回字典键的值的values()方法使用,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-05-05
  • Python写安全小工具之TCP全连接端口扫描器

    Python写安全小工具之TCP全连接端口扫描器

    这篇文章主要介绍了Python写安全小工具之TCP全连接端口扫描器,文章通过TCP connect来实现一个TCP全连接端口扫描器。具有一定的参考价值,需要的小伙伴可以参考一下
    2022-05-05
  • Python脚本实现自动替换文件指定内容

    Python脚本实现自动替换文件指定内容

    这篇文章主要为大家详细介绍了如何编写一个py脚本,可以实现自定义替换py文件里面指定内容,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-03-03
  • Python基本数据结构与用法详解【列表、元组、集合、字典】

    Python基本数据结构与用法详解【列表、元组、集合、字典】

    这篇文章主要介绍了Python基本数据结构与用法,结合实例形式分析了Python基本数据结构中的列表、元组、集合、字典相关概念、使用方法及推导式、遍历等相关使用技巧,需要的朋友可以参考下
    2019-03-03
  • Python如何提取chm数据

    Python如何提取chm数据

    这篇文章主要介绍了Python如何提取chm数据,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • python 如何把classification_report输出到csv文件

    python 如何把classification_report输出到csv文件

    这篇文章主要介绍了python 把classification_report输出到csv文件的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • 好的Python培训机构应该具备哪些条件

    好的Python培训机构应该具备哪些条件

    python是现在开发的热潮,大家应该如何学习呢?许多人选择自学,还有人会选择去培训结构学习,那么好的培训机构的标准是什么样的呢?下面跟随脚本之家小编一起通过本文学习吧
    2018-05-05
  • 基于python进行抽样分布描述及实践详解

    基于python进行抽样分布描述及实践详解

    这篇文章主要介绍了基于python进行抽样分布描述及实践详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09

最新评论