当前位置: 首页 > news >正文

redis-py 在 Python 中连接与使用 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 官方文档。

四、常见配置与调优

  1. 连接池

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

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

  2. 超时与重试

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

    防止网络抖动导致阻塞。

  3. 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'
    )
    

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

五、深入学习资源

  • 官方命令参考:https://redis-py.readthedocs.io/en/stable/
  • 示例仓库:https://github.com/redis/redis-py/tree/master/examples
  • RedisOM for Python:面向对象的 Redis 客户端(文档模型)
  • Redis Modules:RedisJSON、RediSearch、RedisGraph 等高级功能

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

相关文章:

  • Linux之守护进程
  • sl4j+log4j日志框架
  • 硬件服务器基础
  • uniapp 实战demo
  • Spring Boot微服务架构(八):开发之初就引入APM工具监控
  • 端口映射不通的原因有哪些?路由器设置后公网访问本地内网失败分析
  • uniapp-商城-73-shop(6-商品列表,步进器添加数据到购物车,步进器数据同步(深度监听))
  • jenkins部署slave动态节点
  • Metasploit工具使用详解(中)笔记
  • STM32 ADC工作原理与配置详解
  • 《棒球百科》NCAA棒球体系·棒球1号位
  • 使用LangChain与多模态模型实现图像中的文字和表格提取(PDF可转图片)
  • Vue 项目中 Sass 与 Less 的对比
  • docker 网络-用户定义网络
  • Vue内置指令与自定义指令
  • 深入理解SQLMesh中的Lookback、Forward-Only和Auto-Restatement特性
  • IBM DB2和MYSQL在安全性、稳定性等方面的差异
  • linux中基础IO(上)
  • 【halcon】像素维度:插值算法对图片的影响
  • linux打印项目文件夹结构的命令
  • 加大政府网站建设/桂林网站设计
  • 买个域名自己做网站/网络技术培训
  • 开福区网站建设论坛/上海seo招聘
  • 网站后台使用说明/成都百度推广
  • wordpress建站方法/最近营销热点
  • 网站后台登陆验证码不显示/净水器十大品牌