laravel5.5

Laravel5.5: セッションの保存にRedisを使う (ローカル環境)

セッションの保存先を、デフォルトのファイルからRedisへ変更します。
ただし、これは必須ではありません。保存先がファイルのままでも全く問題ありません。
:link: Redis

親記事

Laravel 5.5で基本的なCRUDを作る - Qiita

Redisのインストール

まずは元となるRedisとGUIツールのRDMをインストールします。詳しくは下記を。
:link: (過去記事) Windows: PhpRedisとPredisの使用準備

これ以降は下記の接続設定を前提として進めます。

  • ホスト: 127.0.0.1
  • ポート: 6379
  • 認証: なし

Predis

使用準備

PowerShell
# Composerでインストールする
> composer require predis/predis
.env
# セッションの保存先をfileからredisへ変更
SESSION_DRIVER=redis

# デフォルトのままでOK
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

動作確認

セッションをファイルに保存していた時と同じように、ごく普通にsessionヘルパを使えます。
下記のようにルートを追加してブラウザでhttp://(ドメイン)/test-sessionにアクセスすると、こんにちはこんにちは!!と表示されます。

routes/web.php
Route::get('test-session', function () {
    session(['foo' => 'こんにちはこんにちは!!']);
    return session('foo');
});

RDMで確認します。
下記のようにlaravel:<セッションID>というキー名で、Laravel内で使われている他のセッションとともに保存されています。

001.png

PhpRedis

PhpRedis自体のインストールについては、先ほども挙げた下の記事をご覧ください。
:link: (過去記事) Windows: PhpRedisとPredisの使用準備

Laravelで使用するには、clientphpredisに変えるだけです。

config/database.php
     'redis' => [

-        'client' => 'predis',
+        'client' => 'phpredis',

動作確認のため、先ほどのページをリロードしてみてください。
以前と変わらずにセッションを使えるはずです。
試しにphp.iniでPhpRedisを無効にしてApacheを再起動してページをリロードすると今度はエラーとなるので、セッションの保存にPredisではなくPhpRedisが使われていることが分かります。