👻

【Laravel sail】Redisでセッションキーを取得する

2022/12/24に公開

はじめに

Laravel sailを使って開発をし始めました。セッション管理をRedisすることになったのですが、セッションキーを取得するところで躓いてしましました。結果的に、意外と単純に解決できたのでやったことを書き留めます。

開発環境

  • Mac
  • Laravel 9.0
  • Laravel sail

※ Laravel sailの環境構築についてはここでは触れません。以下の記事に非常に丁寧でわかりやすいです。

https://qiita.com/hinako_n/items/45a7232b0b0ed16bffc8

躓いたこと

① Dockerイメージをビルド後、コンテナを起動する。

$ sail up

② ローカルホストに接続、Laravelのトップページを開く。ユーザー登録・ログインができることを確認する。

③ Redisを起動する。

$ sail redis

④ 全てのセッションキーを表示するコマンドを打つ。

$ keys *

ここで思い通りに動かない。。
ローカルホストで接続し、ログインまでできてるのでキーが表示されない。。

(empty array)

ちなみに、以下のコマンドを打つとセッションのやり取りがされていることを確認できる。
なぜ、キーは表示されないんだろう。。

monitor

キーを表示するために試みたこと

envファイルを修正

① フォルトがfileなので、redisに変える

CACHE_DRIVER=redis
SESSION_DRIVER=redis

② REDIS_DBを追記して、任意の名前をつける

REDIS_DB=2

③ envファイルを変更したので更新

$ sail artisan config:clear 

ここまでやって、再度キー表示のコマンドを打ったが、キーは表示されないまま。。

(empty array)

解決した方法

Redisを起動し、名前をつけたデータベースを選択したら 、キーを表示できました。

① まずはRedis起動

$ sail redis

② 先ほど任意の名前をつけた、データベースを選択(これが必要だった!!)

$ select 2(任意でつけたデータベース名)

③ キーを表示

$ keys *

これで無事セッションキーを表示できました!!
monitorは動いてるのにキーは表示されず謎だったけど、単純なことでした。。

参考

https://qiita.com/taiba/items/18016906d80c13e88853

https://www.larajapan.com/2022/01/17/セッションのストレージにredisを使う/

https://bsblog.casareal.co.jp/archives/3535

https://zenn.dev/yamabiko/articles/laravel-sail-docker

Discussion