Documentation

You are viewing the documentation for the 2.1.x release series. 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 サービスの呼び出し


このドキュメントの翻訳は Play チームによってメンテナンスされているものではありません。 間違いを見つけた場合、このページのソースコードを ここ で確認することができます。 ドキュメントガイドライン を読んで、お気軽にプルリクエストを送ってください。