我想将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);
}
答案 0 :(得分:1)
您可以选择指定缓存的到期时间 - 以秒为单位(https://www.playframework.com/documentation/2.2.x/JavaCache)。如果你不这样做,那么默认值为0,这意味着数据将永久保留在缓存中(无限期):
当然,因为这只是一个缓存,所以你不能真正依赖"永远" 。始终牢记缓存是缓存,您的数据可能会消失 - 您必须有一个备份策略来检索它。