PlayFramework 2.2.6。默认缓存过期

时间:2015-06-18 07:46:42

标签: java caching playframework-2.2

我想将Java对象存储在缓存中以供用户会话使用。我想知道什么是默认缓存存储超时。

我用户登录8.00 am我将他的用户对象存储在缓存中。它会保持f.e.用户退出前10小时?将数据存储在默认播放2.2.6缓存实现10小时?

我不想在cookie中保留太多用户数据,因为用户可以从网络浏览器看到该内容。

以下是我所依据的文档:

https://www.playframework.com/documentation/2.2.x/JavaCache

但是没有任何关于它的消息。

以下是我的缓存相关方法:

    public static Object getCacheValue(String key) {
        return Cache.get(getSessionValue("id") + "_" + key);
    }
    public static void setCacheValue(String key, Object value) {
        Cache.set(getSessionValue("id") + "_" + key, value);
    }
    public static void removeCacheValue(String key) {
        Cache.remove(getSessionValue("id") + "_" + key);
    }

以下是与会话相关的方法:

public static String getSessionValue(String key) {
     return session().get(key);
}
public static void setSessionValue(String key, String value) {
     session(key, value);
}

1 个答案:

答案 0 :(得分:1)

您可以选择指定缓存的到期时间 - 以秒为单位(https://www.playframework.com/documentation/2.2.x/JavaCache)。如果你不这样做,那么默认值为0,这意味着数据将永久保留在缓存中(无限期):

https://github.com/playframework/playframework/blob/2.2.x/framework/src/play-cache/src/main/scala/play/api/cache/Cache.scala#L50-L59

当然,因为这只是一个缓存,所以你不能真正依赖"永远" 。始终牢记缓存是缓存,您的数据可能会消失 - 您必须有一个备份策略来检索它。