Valkey: 使用 Valkey 和 Python 的 Pub/Sub

此文件屬於使用 Python指南的一部分。請在此處查看完整指南:如何將 Valkey 與 Python 連接

👋 歡迎瀏覽 Stackhero 文件!

Stackhero 提供即開即用的 Valkey cloud 方案,帶來多項優勢,包括:

  • 已包含 Valkey Admin 網頁管理介面
  • 無限訊息大小及傳輸量。
  • 一鍵輕鬆完成更新
  • 專屬私有基礎設施提供最佳效能及強大安全性

節省時間簡化您的工作流程:只需 5 分鐘即可體驗 Stackhero 的 Valkey cloud hosting 方案!

在 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-*')