当前位置: 代码网 > it编程>前端脚本>Python > redis-py在Python中连接与使用Redis全过程

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

2025年11月04日 Python 我要评论
一、安装 redis-py首先,确保已经安装并启动了一台 redis 服务。请参阅官方文档完成 redis 服务器的安装与启动。在项目环境中执行:pip install redistip:如果希望获得

一、安装 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 脚本与集群模式等进阶特性,以满足更复杂的业务需求。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com