springsession redis session爆满处理
场景:
1. springsession配置了超时时间为24小时,cookie也配置了24小时;导致请求url后创建很多没有登录的session缓存,迟迟得不到释放;redis内存撑爆
方案:
1. springsession的超时时间为30分钟,cookie不设置超时时间(关闭浏览器失效)
2. 优化浏览器30分钟问题:前端每20分钟请求一次isLogin,使session的时间自动延长,达到不关闭浏览器session一直都在的目的
3. 其他乱七八糟程序请求,爬数据的session都会30分钟失效;使redis里面的session维持在较少状态
@Configuration @EnableRedisHttpSession(maxInactiveIntervalInSeconds = 1800) public class SessionConfiguration { @Bean public CookieHttpSessionStrategy cookieHttpSessionStrategy() { CookieHttpSessionStrategy strategy = new CookieHttpSessionStrategy(); DefaultCookieSerializer cookieSerializer = new DefaultCookieSerializer(); cookieSerializer.setCookieName("JSESSIONID"); // cookieSerializer.setCookieMaxAge(99999); cookieSerializer.setCookiePath("/"); cookieSerializer.setDomainNamePattern("^.+?\\.((\\w|\\-)+\\.(com|com.cn|tec|tech|cn|net.cn))$"); strategy.setCookieSerializer(cookieSerializer); return strategy; } }