视频

了解更多
十多年来,Python 对 Redis 的支持一直在增长,每周下载量超过 100 万次,我们很自豪地宣布最新版本 redis-py 4.1.0!
此版本几乎使我们能够完全支持 Redis 6.2 中的 Redis 命令。我们增加了对现有命令中缺失选项的支持、对 Sentinel 连接的 SSL 支持,并总体上改善了开发人员体验。它还带来了重大的结构性变化,例如专注于 Python 3.6,甚至支持 Python 3.10。我们改进了客户端文档,使其更容易找到 Redis 命令,并鼓励每个人都参与进来!更重要的是,我们以最小的中断完成了它,因此您可以升级而不会出现兼容性问题。
Redis 6.2 带来了大量新的 Redis 命令,现在使用 Python 比以往任何时候都更容易。从使用 GETEX 更容易地获取数据并在单个命令中更新其过期时间,到通过使用 CLIENT INFO 和 CLIENT KILL 断开客户端连接来管理您的 Redis 实例,redis-py 4.1.0 都能满足您的需求。 让我们看看下面 redis-py 4.1.0 中添加的 30 多个命令中的两个示例!
### GETEX
import redis
r = redis.Redis()
r.set('somekey', 'hello')
r.getex('somekey', ex=15) # returns 'Hello'
r.ttl('somekey') # returns 15
### CLIENT INFO AND KILL
import redis
r = redis.Redis()
r2 = redis.Redis()
r.client_setname('redis-py-c1')
r2.client_setname('redis-py-c2')
clients = [client for client in r.client_list()
if client.get('name') in ['redis-py-c1', 'redis-py-c2']]
clients_by_name = dict([(client.get('name'), client)
for client in clients])
r.client_kill_filter(laddr=clients_by_name['redis-py-c2'].get('laddr'))
redis-py 4.0 是 Python 库的第一个版本,它为 Redis 模块带来了一流的支持。 随着 redis-py 4.1.0 的发布,我们现在支持 RedisJSON、RediSearch、RedisTimeSeries、RedisGraph 和 RedisBloom。 没错,您可以轻松地在 Redis 中存储 JSON 数据! 您可以对其进行操作 – 您甚至可以搜索它! 请记住,当您在 Redis 中存储 JSON 数据时,您正在存储一种新的数据类型,因此您需要使用 JSON 特定命令来操作它。 以下是一些示例
### STORING and RETRIEVING JSON
import redis
r = redis.Redis()
myDoc = {'hello', 'world', 'colours': ['red', 'blue', 'green'], 'hmm': {'hello': 'again'}}
r.json().set('colors', '$', myDoc)
r.json().get('colors')
那么像我上面的 myDoc 这样的文档呢? 您是否知道可以通过查询文档的一部分来获取多个键?
### FETCHING ALL KEYS NAMED “hello” from the JSON document
r.json().get('colors', '$..hello')
您甚至可以组合 RedisJSON 和 RediSearch 以获得文档功能或添加您的自定义 Redis 模块支持。 这一切都在 redis-py 4.0 中。
您是否知道 redis-py 4.1.0 还集成了 redis-cluster 支持,具有两种简单的连接方式? 现在,redis-py 包含了与独立 Redis 节点交互的相同出色体验。
### CONNECTING TO CLUSTER
from redis.cluster import RedisCluster
r = RedisCluster.from_url('redis://4.5.6.8:6379')
nodes = r.get_nodes()
也许您想通过 SSL 连接到您的集群,或者更喜欢基于类初始化的方法,并且想要运行针对特定节点的命令。 redis-py 4.1.0 支持这些场景!
### CONNECTING TO CLUSTER 2
from redis.cluster import RedisCluster
r = RedisCluster('4.5.6.8', port=6379, ssl=True)
r.ping(target_nodes='all')
工作永远不会完成,我们正在全力以赴! 我们将增加对更多模块的支持,例如 RedisAI,并提供相同的一流体验。 我们将添加对 RESP3 函数的支持,这些函数将在 Redis 7 中发布,并加快代码库的速度。我们还在开发开发人员工具,以使贡献和使用 redis-py 变得更好!