Play
框架初探之缓存
Play
提供两种缓存方式:
-
JVM
内存缓存
-
使用Memcached
缓存
Play
的CacheImpl
接口(
不知道为什么如此命名)
中提供了safeDelete
,safeAdd
,incr,decr
等高级操作接口,但是两种机制内部实现却大有区别。
方式一基于JVM
内存的缓存方案通过重度封装Ehcache
来做内存缓存,Ehcache
的优点之一是引用非常简单。尽管Cache
是线程安全的,但是是对于set
和get
操作没有内置的timeout
接口,对于incr
和decr
操作需要手动处理并发,总的来说还是需要外层封装代码做不少工作。
// 实现increase需要手动处理并发
public synchronized long incr(String key, int by) {
Element e = cache.get(key);
if (e == null) {
return -1;
}
long newValue = ((Number) e.getValue()).longValue() + by;
Element newE = new Element(key, newValue);
newE.setTimeToLive(e.getTimeToLive());
cache.put(newE);
return newValue;
}
方式二使用Memcached
作为缓存实现,轻度封装了spyMemcached
来连接Memcached,
。spyMemcached
的初始化比较繁琐,但是其使用nio
和concurrent
包的一些机制,存取速度比同类的客户端要快。最重要的一点是spyMemcached
提供了丰富的操作接口,Play
不需要做额外的并发控制处理。
// 客户端提供了increase接口
public long incr(String key, int by) {
return client.incr(key, by, 0);
}
// 异步的safeAdd
public boolean safeAdd(String key, Object value, int expiration) {
Future<Boolean> future = client.add(key, expiration, value, tc);
try {
return future.get(1, TimeUnit.SECONDS);
} catch (Exception e) {
future.cancel(false);
}
return false;
}
总的来说,Play的缓存机制非常简单,选用了存取速度快但是稳定性欠妥的spyMemcached作为Memcached客户端,所以轻量、敏捷是Play所注重的
分享到:
相关推荐
总结起来,Play Framework的缓存功能是构建高性能Web应用的关键组件之一。正确理解和使用缓存API,结合适当的缓存策略,可以极大地优化数据库交互,提升系统响应速度,同时要留意缓存的局限性,如数据一致性问题和...
Play框架是一款基于Java的全栈Web开发框架,它的设计理念是帮助开发者使用最小的配置和编码来构建高性能、可扩展的Web应用。本手册将详细介绍Play框架的核心概念、安装配置、项目结构、基本使用和高级特性。 **一....
JAVA PLAY框架入门学习手册 Java PLAY框架是基于Java语言的Web应用程序框架,旨在提高Web应用程序的开发效率和可维护性。下面是Java PLAY框架的入门学习手册,涵盖了框架的主要概念、目录结构、请求生命周期、HTTP...
Play框架是一个开源的Java和Scala应用开发框架,它遵循模型-视图-控制器(MVC)架构模式。Play强调简洁的代码和实时反馈,使得开发过程更为高效。它支持TDD(测试驱动开发),并且与现代Web技术如HTML5、CSS3和...
Play框架中文文档.pdf
Scala Play框架是一款基于Java和Scala的开源Web应用框架,它以简洁、高效和模块化著称,被广泛用于构建现代的、反应式的Web服务。在Play框架中,sbt(Simple Build Tool)是默认的构建工具,它允许开发者管理项目...
【描述】:“Java开源MVC框架源码”特指使用Java语言实现的此类框架,如Spring MVC、Struts2、Play Framework等。这些框架在设计时融入了多种设计模式,如工厂模式、单例模式、观察者模式等,以提供更高效、灵活的...
Play框架是基于Java和Scala的开源Web应用框架,遵循MVC(Model-View-Controller)设计模式,旨在简化Web开发过程。它强调代码即路由、轻量级、快速开发和可测试性,使得开发者能够更加专注于业务逻辑,而不是底层...
Play框架是Java领域的一款轻量级、开源的Web应用框架,它基于MVC(Model-View-Controller)架构模式,提供了简洁的API和强大的工具,使得开发者能够快速地构建高效、可测试的Web应用程序。本项目是针对初学者设计的...
Play框架是一款基于Java和Scala的开源Web应用框架,它遵循模型-视图-控制器(MVC)架构模式,旨在提供高效、简洁且快乐的开发体验。这个资源包含了一系列用于搭建Play框架的jar包,这些jar包是开发Play应用程序所...
play框架 2.1 api
在本项目中,该系统是建立在Play框架之上,这是一个强大的全栈Web应用框架,采用Java和Scala语言,提供了高效开发和快速迭代的能力。Play框架以其模块化结构、异步I/O模型和对RESTful架构的支持而备受青睐。 1. **...
Play框架是基于Java和Scala的开源Web应用框架,遵循MVC(模型-视图-控制器)设计模式。它强调简洁的代码结构和开发效率,同时提供了对AJAX的强大支持,使得开发者可以轻松创建交互式的、响应式的Web应用程序。在本...
Play框架是一种基于Java的轻量级、高性能的Web应用程序开发框架,特别注重开发效率和敏捷开发。它采用了无状态的MVC架构,支持RESTful设计原则,使得HTTP请求可以直接映射到代码,避免了通过Servlet等中间层的复杂性...
play框架的搭建步骤,是我自己学习的总结
此资源是整个play框架外加一个helloworld小例子,下载解压到文件夹中可以直接进行play框架开发。
`play-redis` 是一个专门为 Play 框架2设计的缓存插件,它作为一个高效的适配器,使得 Play 应用能够无缝地与 Redis 服务器进行交互,利用 Redis 的高速缓存能力来提升应用性能。在本文中,我们将深入探讨 `play-...