LoginSignup
1
0

More than 3 years have passed since last update.

【Laravel × Redis】No connections available in the pool...の原因と対処法

Last updated at Posted at 2020-07-03

はじめに

Laravelにて開発中、以下のようなエラーが発生したため、その原因と対処法を簡単に記します。

laravel.log
No connections available in the pool {"exception":"[object] (Predis\\ClientException(code: 0): No connections available in the pool at /var/www/application/vendor/predis/predis/src/Connection/Aggregate/RedisCluster.php:337)...

エラーメッセージより

Redisの接続に異常がある

と見当がつく。

原因

Redisへの接続情報に誤りがあった。
具体的には、Redisのホスト名が誤っていた。
根本原因は、AWS Systems Managerのパラメータストアで管理していた、Redisのホスト名に関する変数の値が古いままとなっていた。

対処法

  1. Laravelの.envを確認。
  2. Redis接続情報とAWSのElastiCacheにて使用しているRedis情報を照合。
  3. ホスト名に誤り発見。「REDIS_HOST=」の部分。
  4. Laravelの.env修正。
  5. しかし直らず。
  6. Laravelの.envの作成元であるphp-fpmを確認。
  7. 該当部分の設定も変更。同じく「REDIS_HOST=」の部分。
  8. php-fpm再起動。sudo service php-fpm restart
  9. 直った。

蛇足

php-fpm管理の環境変数初期設定にはAWS Systems Managerを利用していた。
当エラー発生前にEC2インスタンスの再起動が発生しており、AWS Systems ManagerのRedisホスト名が古いままであり実際の値と異なっていたため、Redisへの接続に不具合が生じることとなった。
よって根本解決として、AWS Systems ManagerのRedisホストの変数名を新しいものへと変更した。

終わりです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0