我正确使用EhCache机制吗?

时间:2014-11-24 17:57:12

标签: playframework-2.2

Play框架是无状态的,但它本身提供了一种缓存机制,让我们可以在服务器端存储一些数据。我想知道在那里存储用户的配置文件是否很好,一旦Play的文档说我们不能相信它那么多,即使没有定义超时,但它看起来比总是查询我的ldap db以获得记录的用户配置文件更漂亮。然后我创建了一个名为getOrUpdateProfile的方法,它首先尝试从Cache获取它,如果它已经消失,那么我查询ldap并再次保存它。

这是正确的用途吗?你们喜欢缓存还是会话?感谢

1 个答案:

答案 0 :(得分:0)

由于Play会话只是一个普通的cookie,它完全暴露给客户端。在某些情况下,您希望将一些数据透明地保存给用户,尤其是在此数据易受攻击的情况下。

您描述的用例绝对正确。使用缓存机制肯定可以提高性能。使用缓存层时,您只需要注意两件事。

首先,请记住缓存中的数据是易失性的,因此请始终为没有您要查找的数据的情况做好准备。不要依赖缓存。将其用作主数据流的补充,可提高性能。始终将数据更改保存到非易失性存储中。

其次,通过打开缓存,您将失去Play应用程序的默认无状态特性。当群集是系统要求之一时,此更改很重要。您需要确保在所有节点上维护缓存一致性。