Larave5でキャッシュを使う

Laravelのキャッシュシステムは抜群に使いやすくなっているのでほとんどの場合使うことになると思います。PHPそれ自体でキャッシュを使う場合はroot権限相当で多くの作業が必要なのですが、Laravelはそこらあたりをとても簡単にまとめてくれています。ベンチマークはとっていないので実際速いのかどうかという問題はあるかもしれないですが、比較的小規模なwebアプリの場合はほとんど問題のない速さで使えています。
キャッシュの種類はたくさんあって必要なキャッシュシステムはすべてサポートしています。また裏側のキャッシュシステムがどうあれLaravel上でのキャッシュ扱い方は非常に容易です。

  • apc PHPのあのキャッシュ
  • array ただ配列にぶっこむだけ
  • Redis う、玄人っぽい(というかちゃんとした運用環境とかでしか使う用途がない)
  • Memcached う、玄人っぽい(というかちゃんとした運用環境とかでしか使う用途がない)
  • database ただDBにぶっこむだけ
  • file ファイルに保存するだけ

キャッシュドライバーの種類はconfig/cache.phpに書かれています。webサーバーの冗長化などではキャッシュの設定は注意しましょう。
インストールしたてのLaravelのデフォルトの設定はfileになっています。
またキャッシュドライバーの定義は.envでやっておくのがベストです。開発環境ではファイルキャッシュ、運用環境ではradisというような使い方をおすすめします。

使い方

使いたいclassのところでuseします。

use Illuminate\Support\Facades\Cache;

これでキャッシュの保存・呼び出し・削除などの関数が使えるようになります。

保存

識別子と保存したい値、キャッシュの有効期間を設定します。

Cache::put($key, $value, $minutes);

永久に保存したい場合は、forever()メソッドを使います。保存期間を指定する第三引数は不要です。

Cache::forever($key, $value);

複数のキャッシドライバーを使い分けることもできます。

Cache::store("file")->put($key, $value, $minutes);
Cache::store("radis")->put($key2, $value2, $minutes2);

それぞれ別のストレージに保存されます。

取得

取り出すときはget()を使います。

Cache::get($key, $value);

ストレージを指定する必要がある場合は、

Cache::store("file")->get($key, $value);

という風にします。


Laravelのキャッシュを用いてDB負荷の削減と高速化を行う(入門/導入編)
Laravel 5.7 キャッシュ

Last update: 2018.12.24 (月)