Valkey: 在 Valkey 和 Python 中使用 Pub/Sub

本文件是使用 Python指南的一部分。您可以在这里查看完整指南:如何将 Valkey 与 Python 连接

👋 欢迎来到 Stackhero 文档!

Stackhero 提供现成的 Valkey 云 解决方案,具有众多优势,包括:

  • 包含 Redis Commander web UI
  • 无限的消息大小和传输。
  • 只需点击即可轻松完成更新
  • 私有和专用 VM提供的最佳性能和强大安全性

节省时间简化您的生活:只需 5 分钟即可试用 Stackhero 的 Valkey 云托管 解决方案!

在 Python 中利用 Valkey 的发布/订阅 (Pub/Sub) 功能非常简单。以下是一个示例:

import redis

# 连接到 Valkey
r = redis.from_url(
  'rediss://default:<password>@<XXXXXX>.stackhero-network.com:<PORT_TLS>',
  health_check_interval=10,
  socket_connect_timeout=5,
  socket_keepalive=True,
  retry_on_timeout=True
)

# 创建一个 PubSub 实例
p = r.pubsub()

# 订阅频道 "test"
p.subscribe('test')

# 向频道 "test" 发布消息
r.publish('test', '这是一条测试消息')

# 从频道 "test" 获取第一个可用消息
p.get_message()

# 取消订阅频道 "test"
p.unsubscribe('test')

通过以下高级示例扩展您的 Pub/Sub 功能:

# 创建一个 PubSub 实例并忽略订阅消息
p = r.pubsub(ignore_subscribe_messages=True)

# 订阅多个频道
p.subscribe('test-1', 'test-2', ...)

# 取消订阅多个频道
p.unsubscribe('test-1', 'test-2', ...)

# 您还可以使用无参数的 "unsubscribe" 来断开所有已订阅频道的连接
p.unsubscribe()

# 使用模式订阅频道
p.psubscribe('my-*')

# 使用模式取消订阅频道
p.punsubscribe('my-*')