You are viewing the documentation for the 2.2.0 release in the 2.2.x series of releases. The latest stable release series is 2.4.x.
§Play キャッシュ API
キャッシュ API のデフォルト実装は EHCache です。その他の実装はプラグイン経由で利用することができます。
§キャッシュ API へのアクセス
キャッシュ API は play.api.cache.Cache
オブジェクトとして提供されています。このオブジェクトを利用するためには、キャッシュプラグインが既に登録されている必要があります。
Note: 様々な実装をプラグインできるように、キャッシュ API の機能は意図的に最小限に絞りこまれています。より特殊な API が必要な場合、独自のキャッシュプラグインにその API を持たせるとよいでしょう。
このシンプルな API を利用して、データをキャッシュに保存するには次のようなコードを記述します。
Cache.set("item.key", connectedUser)
そして、保存したデータを後で取得するためには、次のようなコードを記述します。
val maybeUser: Option[User] = Cache.getAs[User]("item.key")
値がキャッシュに保存されていればそれを取得し、そうでなければ保存するという機能を持つ便利なヘルパ関数もあります。
val user: User = Cache.getOrElse[User]("item.key") {
User.findById(connectedUser)
}
remove
メソッドでデータをキャッシュから削除することができます。
Cache.remove("item.key")
§HTTP レスポンスのキャッシュ
標準的なアクション合成の方法を使って、簡単にスマートなキャッシュ機能を備えたアクションを実装できます。
Note: Play の HTTP
Result
インスタンスは安全にキャッシュ、再利用することができます。
また、標準的なユースケースであれば、Play 組み込みのヘルパが利用できます。
def index = Cached("homePage") {
Action {
Ok("Hello world")
}
}
こんなこともできます。
def userProfile = Authenticated {
user =>
Cached(req => "profile." + user) {
Action {
Ok(views.html.profile(User.find(user)))
}
}
}
次ページ: Web サービスの呼び出し