简单做了一个测试,servlet中post方法存入session(存入之后立马去getAttribute是有值的),redis也存进去了,但是重新再请求get方法中request.getSession().getAttribute确是null,求解?
环境:jdk7+tomcat7+redis2.8
认证高级PHP讲师
redis放對象,取出是null,放字串是好的,看來只能對象轉json了
問題解決:bean物件沒有序列化造成存redis異常,序列化之後正常
session的只在目前tomcat實例裡有效,所以在多tomcat實例的情況下,不能使用request.getSession().getAttribute取得session,而是從redis中取得。
既然都用了redis了,就不需要再用容器裡的session了吧。 。
叢集會話保持方案,可以將sessionId作為key存入redis(值是你要存的會話資訊),取的時候當然從redis去取,tomcat不保存會話資訊。
有一個第三方jar包,可以與tomcat集成,讓session保存在redis.應用程式碼不需要關注此事
試試spring-session
redis放對象,取出是null,放字串是好的,看來只能對象轉json了
問題解決:bean物件沒有序列化造成存redis異常,序列化之後正常
session的只在目前tomcat實例裡有效,所以在多tomcat實例的情況下,不能使用request.getSession().getAttribute取得session,而是從redis中取得。
既然都用了redis了,就不需要再用容器裡的session了吧。 。
叢集會話保持方案,可以將sessionId作為key存入redis(值是你要存的會話資訊),取的時候當然從redis去取,tomcat不保存會話資訊。
有一個第三方jar包,可以與tomcat集成,讓session保存在redis.應用程式碼不需要關注此事
試試spring-session