Symfonyのキャッシュストレージ設定を完全解説!初心者でもわかるFilesystem・Redis入門
生徒
「Symfonyって、動きが速いって聞くんですが、何か特別な仕組みがあるんですか?」
先生
「ありますよ。Symfonyではキャッシュという仕組みを使って、同じ処理を何度もやらなくて済むようにしています。」
生徒
「キャッシュって、保存する場所とかも決められるんですか?」
先生
「はい。ファイルに保存する方法や、Redisのような高速な仕組みを使う方法があります。順番に見ていきましょう。」
1. キャッシュとは?Symfonyで重要な理由
キャッシュとは、一度作った結果を保存しておき、次回から再利用する仕組みです。毎回同じ計算やデータ取得を行うのは時間がかかります。そこでSymfonyでは、結果をキャッシュストレージに保存し、次回はそこから取り出します。
身近な例でいうと、よく使う書類を机の引き出しに入れておくようなものです。毎回倉庫まで取りに行くより、すぐに取り出せて作業が早くなります。
2. Symfonyのキャッシュストレージの種類
Symfonyでは、キャッシュを保存する場所として複数の選択肢があります。代表的なのがFilesystemとRedisです。
- Filesystem:ファイルとして保存。設定が簡単で初心者向け
- Redis:メモリ上に保存。とても高速で大規模向け
最初はFilesystemから始め、必要に応じてRedisへ切り替える流れが一般的です。
3. Filesystemキャッシュの基本設定方法
Symfonyでは、設定ファイルに書くだけでキャッシュストレージを指定できます。Filesystemは特に設定が少なく、初心者でも安心です。
# config/packages/cache.yaml
framework:
cache:
app: cache.adapter.filesystem
この設定により、キャッシュはサーバー内のディレクトリにファイルとして保存されます。特別なソフトのインストールは不要です。
4. PHPコードでキャッシュを使ってみよう
設定だけでなく、実際にPHPコードからキャッシュを使うことで動きを理解できます。
use Symfony\Contracts\Cache\CacheInterface;
public function index(CacheInterface $cache)
{
$value = $cache->get('sample_key', function () {
return 'キャッシュされた文字列';
});
echo $value;
}
ここでは、sample_keyという名前でデータを保存しています。一度保存されると、次回以降は同じ値がすぐに返ってきます。
5. Redisとは?Filesystemとの違い
Redisは、メモリ上でデータを管理する高速なキャッシュシステムです。ファイルに書き込むFilesystemよりも圧倒的に速く、大量アクセスに向いています。
例えるなら、Filesystemが本棚、Redisが手元のメモ帳です。メモ帳の方がすぐに確認できますが、専用の準備が必要です。
6. Redisキャッシュの設定方法
Redisを使う場合は、Redis本体をインストールした上で、Symfony側の設定を行います。
# config/packages/cache.yaml
framework:
cache:
app: cache.adapter.redis
default_redis_provider: redis://localhost
これでSymfonyはRedisをキャッシュストレージとして使うようになります。
7. キャッシュの削除と注意点
キャッシュは便利ですが、古い情報が残ることもあります。その場合はキャッシュクリアを行います。
php bin/console cache:clear
このコマンドで、Symfonyのキャッシュがリセットされます。開発中によく使う操作です。
8. 初心者がつまずきやすいポイント
最初からRedisを使おうとして設定で混乱する人が多いです。まずはFilesystemで仕組みを理解することが大切です。また、キャッシュは「保存されていること」を意識しないと、変更が反映されず戸惑う原因になります。