2015-06-18 3 views
1

Я хотел бы сохранить объект Java в кеше для сеанса пользователя. Я хотел бы знать, что такое тайм-аут хранения кэша по умолчанию.PlayFramework 2.2.6. По истечении срока действия кеша

Я зарегистрировался в 8.00 утра. Я сохраню его пользовательский объект в кеше. Будет ли он поддерживать 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

Вы имеете возможность specifiy истечения для кэша - в секундах (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

Конечно, как это только кеш, поэтому вы не можете положиться на «навсегда». Всегда помните, что кеш - кеш, и ваши данные могут исчезнуть - для его восстановления требуется стратегия резервного копирования.

+0

Так что кеш должен длиться целую сессию пользователя? Но это не может быть гарантировано? – masterdany88

+0

Теоретически, да. Это также указано в документе: _ Важным моментом в кэше является то, что он ведет себя точно так же, как кэш должен: данные, которые вы только что сохранили, могут просто исчезнуть. – Anton

Смежные вопросы