redis设置失效时间问题
课程里设置了redis的失效时间,意味着10分钟之后是否必失效。 那么是否就意味着你10分钟之后一定要重新登录一次呢?
课程里设置了redis的失效时间,意味着10分钟之后是否必失效。 那么是否就意味着你10分钟之后一定要重新登录一次呢?
2018-05-31
你可以重写更新session的方法,每次操作当前会话都会刷新session的过期时间,以下是参考的zheng项目的代码:
@Override protected void doUpdate(Session session) { // 如果会话过期/停止 没必要再更新了 if(session instanceof ValidatingSession && !((ValidatingSession)session).isValid()) { return; } // 更新session的最后一次访问时间 UpmsSession upmsSession = (UpmsSession) session; UpmsSession cacheUpmsSession = (UpmsSession) doReadSession(session.getId()); if (null != cacheUpmsSession) { upmsSession.setStatus(cacheUpmsSession.getStatus()); upmsSession.setAttribute("FORCE_LOGOUT", cacheUpmsSession.getAttribute("FORCE_LOGOUT")); } RedisUtil.set(ZHENG_UPMS_SHIRO_SESSION_ID + "_" + session.getId(), SerializableUtil.serialize(session), (int) session.getTimeout() / 1000); // 更新ZHENG_UPMS_SERVER_SESSION_ID、ZHENG_UPMS_SERVER_CODE过期时间 TODO LOGGER.debug("doUpdate >>>>> sessionId={}", session.getId()); }
举报