CakePHPでVue.jsを利用する方法
のえる
2021.01.12
「フレームワークは遅い」
そういう人もいると思いますが、それは「高速化」を行っていない場合がほとんどかと思います。
システム開発の中で更新頻度が低いマスタデータというのは往々にして存在し、毎回データを取得しに行く際の通信オーバーヘッドは無駄なものになりがちです。
今回はそんな 低更新のデータをキャッシュ化する方法 をご紹介します。
今回の開発仕様は下記のとおりです。
nginx | 1.18.0 |
PHP | 7.4.11 |
CakePHP | 4.1.5 |
`app.php` にキャッシュのための設定を記載します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
return [ . . . 'Cache' => [ // データキャッシュ用 'MASTER' => [ // ファイルキャッシュ 'className' => FileEngine::class, // キャッシュ保存場所:tmp/cache/master/ 配下 'path' => CACHE.'MASTER'.DS, // キャッシュ有効期限:1日 'duration' => '+1 days', 'serialize' => true, 'url' => env('CACHE_DEFAULT_URL', null), ], ], . . . ]; |
[公式] CakePHP 4.x / キャッシュ – Cache エンジンの設定
設定が完了したらキャッシュして取得するようにしましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<?php use Cake\Cache\Cache; function getDataList() { $cacheKey = 'key01'; $config = 'MASTER' $result = null; // キャッシュ読み込み $cacheData = Cache::read($cacheKey, $config); if($cacheData !== false) { // キャッシュからデータを取得 $result = $cacheData; } else { // キャッシュがない = DBからデータを取得(取得処理は省略) $result = $dbDataList; // 結果をキャッシュに保存 Cache::write($cacheKey, $result, $config); } return $result; } |
これで取得する度に自動でキャッシュ化されるようになります。
キャッシュファイルを削除することで、有効期限を待たずに強制的にキャッシュを更新させることができます
[公式] CakePHP 4.x / キャッシュ – キャッシュからの読み込み
[公式] CakePHP 4.x / キャッシュ – キャッシュへの書き込み
この方法でアクセス速度が早くなったり、更新されたマスタデータを自動取得することができるようになります。
高速化は1つ適用すれば大きく改善されるものではなく、細かな部分改善の積み重ねな場合が多いです。
このキャッシュ化が高速化の1つに繋がっていくといいなと思います。
POPULAR
のえる
Full-stack Developer
人気記事