Valkey: ValkeyとPythonでのPub/Subの使用

このドキュメントはPythonでの使用ガイドの一部です。完全なガイドはこちらからご覧いただけます:ValkeyをPythonで接続する方法

👋 Stackhero ドキュメントへようこそ!

Stackhero では、すぐに利用可能な Valkey クラウド ソリューションを提供しています。主な特長は以下の通りです:

  • Valkey Admin Web UI を標準搭載。
  • メッセージサイズ・転送量が無制限
  • ワンクリックで簡単にアップデート可能。
  • プライベート専用インフラによる最適なパフォーマンスと強固なセキュリティ

時間を節約し、運用をシンプルに:Stackhero の Valkey クラウドホスティング ソリューションは、わずか5分でお試しいただけます!

PythonでValkeyのPublish/Subscribe (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', 'This is a test message')

# チャンネル"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-*')