Play framework 2.0 -使用緩存

 

#Play緩存API

 

在現代應用程序中緩存數據是典型的優化方式,所以Play提供了一個全局緩存。緩存有一點很重要,存儲在緩存中的數據可能會丟失。

對存儲在緩存中的任意數據,生成策略需要落實到數據丟失的情況下。這個理念是Play的基礎理念,不同與JAVA EE,JAVA EE中會話

值要在它的整個生命週期保存。

默認的緩存API實現使用EHCache。你也可以通過插件實現自己的緩存。

 

1.訪問緩存API

 

play.cache.Cache對象提供了緩存API。這需要註冊一個緩存插件。

這個API刻意做的很小用以運行各種實現被加入。如果你需要一個更具體的API,就使用你的緩存插件提供的API。

在緩存中存儲數據:

Cache.set("item.key", frontPageNews);
 

獲取到緩存中的數據:

News news = Cache.get("item.key");

 

2.緩存HTTP請求

 

你可以使用標準的Acti組件輕易的創建一個優秀的緩存Action。Play的HTTP result實例的存儲是安全的,並且之後可以重用。

Play爲標準的用例提供了一個默認的內建助手。

 @Cached("homePage")
	public static Result index() {
	  return ok("Hello world");
	}
 

 

3.緩存到模板中

 

你也可以在視圖模板中獲取到緩存:

 @cache.Cache.getOrElse("cached-content", 3600) {
	     <div>I’m cached for an hour</div>
	}
 

 

4.會話緩存

 

Play提供了一個全局緩存,它的數據可以隨意訪問。如何限制某個特定的用戶的所見?

比如說,你或許想要緩存某個特定用戶適用的指標。

 // Generate a unique ID
	String uuid=session("uuid");
	if(uuid==null) {
		uuid=java.util.UUID.randomUUID().toString();
		session("uuid", uuid);
	}

	// Access the cache
	News userNews = Cache.get(uuid+"item.key");
	if(userNews==null) {
		userNews = generateNews(uuid);
		Cache.set(uuid+"item.key", userNews );
	}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章