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 );
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值