Laravel

LaravelのRedisで「No connections available in the pool」とエラーが出た時の解決方法

いつもご利用ありがとうございます。このブログは、広告費によって運営されています。

オススメ本
Web技術を勉強するなら、かなりオススメの雑誌です。毎月新しい発見があります。ついに最終号・・・、みなさん買いましょう!!
読んで損することはない名著。命名で悩むことが多い人はこの本がオススメです。

⇨ Laravel 記事の目次はこちら

Laravel の Redis で

「No connections available in the pool」

とエラーが出てしまった時の解決方法についてまとめました。

検証した環境

PHP 7.4
Laravel 6
predis 2.2
クラスターモード

結論

  1. HOST、パスワード、ポートなどが間違っている。

自分の場合、

//.env
//これでは間違っている。:6379が不要
REDIS_HOST=endpoint:6379

このように、URL の末尾にポートを載せてしまっていたことが原因で今回のエラーが発生しました。

  1. ローカルでは検証できない

AWS の ElastiCache は、EC2 など AWS のサービス内からでしか接続ができません。

ローカルで接続の検証をしようとすると同様のエラーが出るので必ず EC2 などで接続の検証を行いましょう。

なぜこうなったのか?

AWS の ElastiCache の管理画面上にあるエンドポイントのコピーボタンを押すと、

今回の設定に不要な port が付いてきてしまうため。

ElastiCacheのエンドポイント

これは管理画面の画像ですが、URL の末尾にポート番号がついています。

なので、HOST:6397 の部分を削除する必要があります。

まとめ

以上です。誰かの参考になればと思います。

このブログは広告のクリックによって支えられています。ありがとうございます。

それでは!

人気記事

PHP7.4 + Laravel6 のプロジェクトを AWS EC2 にデプロイする

【laravel-breadcrumbs】Laravel でパンくずリストを実装する