7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-07-23

セッションの保存先を、デフォルトのファイルから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が使われていることが分かります。

7
8
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
7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?