Documentation

You are viewing the documentation for the 2.0.8 release in the 2.0.x series of releases. The latest stable release series is 2.4.x.

§Play キャッシュ API

キャッシュ API のデフォルト実装は EHCache を使用します。別の実装をプラグインとして提供することもできます。

§キャッシュ API へのアクセス

キャッシュ API は play.api.cache.Cache オブジェクトにより提供されています。このオブジェクトを利用するには、キャッシュプラグインの登録が必要です。

注意: この API は様々な実装をプラグインできるよう、意図的に最小限に抑えられています。より特殊な API が必要な場合、別のキャッシュプラグインにより提供される API を使用してください。

このシンプルな API を使ってキャッシュにデータ格納することができます:

Cache.set("item.key", connectedUser)

そして、それを後から読み出すこともできます:

val maybeUser: Option[User] = Cache.getAs[User]("item.key")

キャッシュから値を読み出し、もしキャッシュの中に見当たらない場合はキャッシュに値をセットする便利なヘルパもあります:

val user: User = Cache.getOrElseAs[User]("item.key") {
  User.findById(connectedUser)
}

§HTTP レスポンスのキャッシュ

標準的なアクションの合成を使って、レスポンスをキャッシュするアクションを簡単に作成することができます。

注意: 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 サービスの呼び出し