PHPのフレームワーク(例えばLaravel)でセッション管理は何を使っていますか?
よくあるのが、
- ファイル管理
- データベース管理
- Cookie管理
- memcached/redis管理(キャッシュ)
だと思います。
今回はこの中でもよく使われるRedis(NoSQL)を使ったキャッシュ管理について、よくあるRedisに接続できない件を解説したいと思います。
このブログは現役のエンジニア(プログラマー歴が約12年)の僕(よしたか)が2019年12月後半から日々更新しております。
もしもアフィリエイトは会員登録後も無料です!
今すぐ会員登録してアフィリエイトを始めよう!
1台構成の場合は問題ないが複数台構成でRedisを使う場合の注意点
1台構成(WebもDBも1つのサーバーに相乗りしている)の場合はそこまで気にする必要はないですが、複数台構成でRedisを使う場合に、
Connection refused [tcp://xxx.xxx.xxx.xxx:6379]
こんなエラーが出て接続できない場合があります。
複数台構成でRedisを利用する場合はコンフィグファイルを調整する必要あり
「Connection refused」のエラーで接続できない場合は、
vi /etc/redis.conf
=====
bind 127.0.0.1
↓
bind 0.0.0.0
=====
or
=====
bind 127.0.0.1
↓
bind 127.0.0.1 [許可するip]
=====
service redis restart
このように調整しましょう。
ちなみに前者(0.0.0.0)の場合は、全許可なのでセキュリティ的にNGな場合は後者の調整方法をおすすめいたします。
簡単にいいますと、Redisのデフォルトの状態だと「127.0.0.1」(同サーバー)からしか接続許可されておりません。
その為、例えばWebサーバーが2台〜ある場合に1箇所のRedisに接続したい場合には、このように「127.0.0.1」(同サーバー)以外からも許可する必要があります。
まとめ
いかがだったでしょうか。
Laravelといいますか、PHPでは以前はmemcachedが使われる事が多かったのですが、近年ではRedisの利用が一般的になりつつあるかなと感じています。
複数台構成でRedisを使う場合の参考にしてくださいね。
今日はさくっと以上となります!