跳转到主要内容

Redis数据库和键值存储的Python客户端

项目描述

redis-py

Redis键值存储的Python接口。

CI docs MIT licensed pypi pre-release codecov

安装 | 使用 | 高级主题 | 贡献


**注意:** redis-py 5.0将是最后一个支持Python 3.7的redis-py版本,因为它已经达到了生命周期的结束。redis-py 5.1将支持Python 3.8+。


如何使用Redis?

在Redis大学免费学习

试用Redis Cloud

深入开发者教程

加入Redis社区

在Redis工作

安装

通过Docker启动redis

docker run -p 6379:6379 -it redis/redis-stack:latest

要安装redis-py,只需

$ pip install redis

为了提高性能,安装带有hiredis支持的redis,这提供了一个编译后的响应解析器,并且在大多数情况下不需要更改代码。默认情况下,如果hiredis >= 1.0可用,redis-py将尝试使用它进行响应解析。

$ pip install "redis[hiredis]"

寻找一个处理对象映射的高级库?请查看 redis-om-python

支持的Redis版本

此库的最新版本支持redis版本 5.06.06.27.07.27.4

下表突出了最新库版本和redis版本之间的版本兼容性。

库版本 支持的redis版本
3.5.3 <= 6.2系列版本
>= 4.5.0 版本5.0至7.0
>= 5.0.0 版本5.0至当前版本

用法

基本示例

>>> import redis
>>> r = redis.Redis(host='localhost', port=6379, db=0)
>>> r.set('foo', 'bar')
True
>>> r.get('foo')
b'bar'

上述代码连接到本地主机上的6379端口,在Redis中设置一个值,并检索它。所有响应都以字节形式返回,要在Python中接收解码的字符串,请将 decode_responses=True。为此,以及更多连接选项,请参阅 这些示例

RESP3支持

要启用对RESP3的支持,请确保您至少有客户端的5.0版本,并将您的连接对象更改为包含 protocol=3

>>> import redis
>>> r = redis.Redis(host='localhost', port=6379, db=0, protocol=3)

连接池

默认情况下,redis-py使用连接池来管理连接。Redis类的每个实例都接收自己的连接池。但是,您可以定义自己的 redis.ConnectionPool

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

或者,您可能想查看 异步连接集群连接,甚至 异步集群连接

Redis命令

所有内置的Redis命令都得到了支持。它们使用原始Redis命令名称(如HSETHGETALL等)公开,除非某个单词(例如del)被语言保留。完整的命令集可以在这里文档中找到。

高级主题

官方Redis命令文档详细解释了每个命令。redis-py试图遵守官方命令语法。有一些例外

  • MULTI/EXEC:这些作为Pipeline类的部分实现。默认情况下,当执行管道时,它会用MULTI和EXEC语句包装,可以通过指定transaction=False来禁用。有关管道的更多信息,请参阅下面的内容。

  • SUBSCRIBE/LISTEN:与管道类似,PubSub作为单独的类实现,因为它将底层连接置于无法执行非pubsub命令的状态。从Redis客户端调用pubsub方法将返回一个PubSub实例,您可以在其中订阅频道并监听消息。您只能从Redis客户端调用PUBLISH(有关详细信息,请参阅问题#151的此评论)。

有关更多信息,请参阅高级主题页面上的文档。

管道

以下是一个基本的Redis管道示例,这是一种优化往返调用的方法,通过批量执行Redis命令,并将结果作为列表接收。Redis管道

>>> pipe = r.pipeline()
>>> pipe.set('foo', 5)
>>> pipe.set('bar', 18.5)
>>> pipe.set('blee', "hello world!")
>>> pipe.execute()
[True, True, True]

Pub/Sub

以下示例展示了如何使用Redis Pub/Sub来订阅特定频道。

>>> r = redis.Redis(...)
>>> p = r.pubsub()
>>> p.subscribe('my-first-channel', 'my-second-channel', ...)
>>> p.get_message()
{'pattern': None, 'type': 'subscribe', 'channel': b'my-second-channel', 'data': 1}

作者

redis-py由Redis Inc开发和维护。可以在这里找到,或者从pypi下载。

特别感谢

  • Andy McCurdy ([email protected]),redis-py的原始作者。
  • Ludovico Magnocavallo,原始Python Redis客户端的作者,其中一些套接字代码仍在使用。
  • Alexander Solovyov,对通用响应回调系统的想法。
  • Paul Hubbard,提供初始打包支持。

Redis

项目详情


发布历史 发布通知 | RSS订阅

下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

redis-5.1.1.tar.gz (4.6 MB 查看哈希值)

上传时间 源代码

构建分发

redis-5.1.1-py3-none-any.whl (261.3 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF 赞助商 PingdomPingdom 监控 SentrySentry 错误记录 StatusPageStatusPage 状态页面