モヒカンは正義

プログラマー風林火山で言う「風のエンジニア」になりたい(比較的)若者Webエンジニアの備忘録

LumenでCache DriverにRedisを使う

Laravelベースなマイクロフレーム LumenでキャッシュドライバとしてRedisを使おうとしていくつかハマったのでメモ (改めて公式ドキュメントみたら大体書いてたw)。

f:id:pinkumohikan:20180928214447p:plain

必要なこと

  1. Redisを使えるようにする
    • Redisサーバの用意 (割愛)
    • .envREDIS_ 系環境変数を設定
  2. パッケージの追加
    • composer require predis/predis
    • composer require illuminate/redis
  3. RedisServiceProviderの登録
    • bootstrap/app.php$app->register(Illuminate\Redis\RedisServiceProvider::class); を記述
  4. Cacheファサードを使えるようにする
    • bootstrap/app.php 内の $app->withFacades() のコメントアウトを解除
  5. Cache driverを redis へ変える
    • .envCACHE_DRIVER=redis を設定

動作確認

Lumenだとデフォルトではtinkerが使えないので php artisan cache:clear コマンドで代用する。

手順

  1. .envREDIS_HOST を適当に書き換えてコマンドを叩いてエラーがでることを確認
    • Cache driverがRedisになっていることの確認
  2. ↑を正規の情報に戻した上で、コマンドを叩いてみてエラーが出ないことを確認
    • Redisへの疎通とAuthが通っていること (あるいはno-passwordであること) の確認

しっかりやるなら、キャッシュをsetしてgetするようなエンドポイントを用意して、http経由で叩くのが良さそう。

おまけ

参考にした資料