💢

ElastiCache サーバーレスでは PSUBSCRIBE/PUNSUBSCRIBE コマンドが使えない

に公開

ElastiCache サーバーレス (Valkey) の pub/sub を利用してアプリケーション間の低遅延な通信を実現するために PSUBSCRIBE コマンド を利用してパターンでチャンネル名を指定してチャンネルを購読しようとしてみたものの、Valkey GLIDE もしくは iovalkey のどちらを利用しても購読がうまくいかず調査に難儀したので、ここにメモを残しておきます。

結論

ElastiCache サーバーレスは (2025-10 時点では) PSUBSCRIBE コマンドをサポートしていません 😭

公式のドキュメントにはこれといって目立つような記述はされていないのですが、以下のドキュメントに

  • PSUBSCRIBE および PUNSUBSCRIBE は ElastiCache Serverless では使用できません。

としれっと書かれていました。

https://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/dg/elasticache-use-cases.html#elasticache-for-redis-use-cases-messaging

ゆえに ElastiCache サーバーレスでは PSUBSCRIBE コマンドではなく、チャンネル名を厳密に指定して SUBSCRIBE コマンドで購読をする必要があります。

参考までに、Valkey GLIDE, iovalkey を利用して PSUBSCRIBE コマンドによる購読を試みたときのエラーコードを残しておきます。

Valkey GLIDE

Failed to create management connection for node `"ElastiCacheサーバーレースへの接続文字列"`. Error: `Failed to receive subscription notification while restoring subscription channels- ResponseError`

iovalkey

ReplyError: ERR unknown command 'psubscribe', with args beginning with: (指定したパターン)

Discussion