ひとまずLaravelでRedisを使ってみる。
とりあえず、なのでRedisはアプリサーバと同じ所にインストール。
Laravelは既にインストールされている前提。
環境:
- CentOS:7.2
- Laravel:5.4.30
参考:
CentOS7にyumでRedisを入れる
Laravel 5.3でセッション管理にredisを使用する方法
Laravel Redis
Laravel 5.4 Redis
Redisをyumでインストール
$ sudo yum install redis ==================================================================================================== Package Arch Version Repository Size ==================================================================================================== Installing: redis x86_64 3.2.3-1.el7 epel 527 k Installing for dependencies: jemalloc x86_64 3.6.0-1.el7 epel 105 k Transaction Summary ==================================================================================================== Install 1 Package (+1 Dependent package) Total download size: 631 k Installed size: 2.6 M Is this ok [y/d/N]:
インストールが出来たか確認+起動
$ redis-cli -v redis-cli 3.2.3 $ sudo systemctl start redis.service $ sudo systemctl enable redis.service Created symlink from /etc/systemd/system/multi-user.target.wants/redis.service to /usr/lib/systemd/system/redis.service. $ redis-cli ping PONG
「redis-cli ping」を打って「PONG」が返ってくればOK。
predisのインストール
$ cd /your/project/path $ composer require predis/predis
※/your/project/path はLaravelのインストールディレクトリ
設定変更
$ vi .env SESSION_DRIVER=file ↓ SESSION_DRIVER=redis
「file」を「redis」に書き換え。
動作確認
その後ブラウザからLaravel標準の認証機能でログインを実施。
ログイン後のセッションを確認。
確認後、再度ターミナルへ。
$ redis-cli 127.0.0.1:6379> keys * 1) "laravel:LyAZZAYisVbOfZREVAVHDUO1DfRnNk9ixRJth3jx" $ ls -a storage/framework/sessions/ . .. .gitignore
Redisにセッションが格納されていること、セッションファイルが保存されていないことを確認。
ついでにRedisが使われていることを改めて確認。
まずはRedisのレコードを削除。
127.0.0.1:6379> keys * 1) "laravel:4gcbEbW2jaijLBuyHVCupUYQkB4DJN36sJX2uLX7" 127.0.0.1:6379> del laravel:4gcbEbW2jaijLBuyHVCupUYQkB4DJN36sJX2uLX7 (integer) 1 127.0.0.1:6379> keys * (empty list or set)
削除後にログイン後のブラウザを再読み込みし、ログイン画面に戻されることを確認したので、Redisが使われている。