案件で得られた情報も含めて、個人用にまとめました
プラットフォームキャッシュとは?
組織レベルまたはユーザセッションレベルで、Key-Value型で任意の値を保持することが出来る機能で、VisualforceとApexから利用できます
目的
- データをキャッシュすることでパフォーマンスを改善
使える用途
- ViewStateに保持されるような情報
- セッション全体を通して再利用されるデータ
- 静的データ(急速に変化しない)
- 取得にコストがかかるデータ
セッションキャッシュ
- 個々のユーザセッションのデータ
組織キャッシュ
- 組織のユーザが再使用するデータ
気を付ける点
- セッションキャッシュの最大有効期間は 8 時間
- 日をまたいで情報を保持しておくような用途には使えない
- 組織キャッシュは最大 48 時間
- 容量 ユーザ毎に利用されるのでユーザ数が多い場合は計算が必要
- 新規環境にリリースするときにPlatfformCacheの設定を忘れがち
- データ損失を考慮する
- 明示的に保持期間を設定しておく
その他
- キャッシュ内のデータは暗号化されません
- 非同期Apexでセッションキャッシュを利用することができない
- オーバーヘッドが増加するため小さな項目より大きな項目でキャッシュする
キャッシュの制限
-
Enterprise:10 MB
-
Unlimited および Performance:30 MB
-
その他すべて: 0 MB
-
最小パーティションサイズ:5 MB
セッションキャッシュ
- 1 つのキャッシュ項目の最大サイズ :100KB
- Time to Live の最小値:5分
- Time to Live の最大値:8時間
組織キャッシュ
- 1 つのキャッシュ項目の最大サイズ :100KB
- Time to Live の最小値:5分
- Time to Live の最大値:48 時間
例)Enterprise:組織のキャッシュ制限が10MBの場合、セッションキャッシュ+組織セッション=10MB
キャッシュパーティション
- キャッシュ空間を割り当ててアプリケーション間で使用量とパフォーマンスのバランスを取ることができます
プラットフォームキャッシュの基礎
https://trailhead.salesforce.com/ja/modules/platform_cache/units/platform_cache_get_started
プラットフォームキャッシュの考慮事項
https://developer.salesforce.com/docs/atlas.ja-jp.apexcode.meta/apexcode/apex_platform_cache_limitations.htm