我是根据网上的配置做的,然后做了一个小demo,用来显示当前的sessionId,但是发现,每次通过nginx监听的主机和端口访问过去,每一次的sessionId都是改变的,说明,session没有被共享;怀疑过redis没正常运行,我把它服务关掉,tomcat那边就立马报错了,说明是连上了redis的,但是就是没被共享
我的配置文件是:tomcat/conf/context.xml
<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve"/> <Manager className="com.radiadesign.catalina.session.RedisSessionManager" host="191.0.4.28" port="6379" database="0" maxInactiveInterval="3600" />
tomcat/jar下面添加了:commons-pool-1.6.jar,jedis-2.1.0.jar,tomcat-redis-session-manager-1.2-tomcat-6.jar Nginx的配置只是实现了负载均衡,好像网上的也没说要nginx配置文件要配置与redis相关的东西...
redis.cof的配置文件
daemonize yes
pidfile redis.pid
port 6379
timeout 300
loglevel verbose
logfile redis.log
databases 16
save 900 1
save 300 10
save 60 10000
rdbcompression yes
dbfilename dump.rdb
slave-serve-stale-data yes
appendonly no
appendfsync everysec
no-appendfsync-on-rewrite no
#vm-enabled no
activerehashing yes
都木有人么....是我表述得有问题??######表述没有问题。。。你配置的问题。我成功搭建过!!!不过用的tomcat7######回复 @youkaohasang : 跨服务器???这个有区别吗?######问下你搭建的是跨服务器session共享不!我tomcat6和7都搭建了发现都不行######回复 @梦幻de风 : win下测试也通过######回复 @梦幻de风 : Linux######redis是在win环境下吗?###### tomcat下四个包
commons-pool-1.6.jar
commons-pool2-2.3.jar
jedis-2.1.0.jar
tomcat-redis-session-manager-1.2-tomcat-6.jar
少了commons-pool2-2.3.jar ######我是用的这四个包,没问题啊,还部署了www.wangjb.com######还是不行,如果使用的是jedis-2.5.0的话,就需要使用到commons-pool2这个路径下的class文件,2.10版本的,不用这个commons-pool2-2.23,也不会报错######问题解决了吗?我遇到同样问题了。求解决办法。######没有,还是不行,windows下面搭建不成功....######我试过jdk1.7 + tomcat 7的环境,也是不行。只要一运行web,redis-server.exe进程的内存消耗就狂涨至100%,直接导致timeout。######网上有说,windows下的redis可能有Bug,之前还打算在ubuntu玩一下,后来领导没拍板,所以就不了了之了;打算辞职后,自己去玩一下,现在忙交接######用terracotta集群session试试。就不用redis了######感兴趣可以了解一下bboss会话共享框架,快速实现集群节点间会话共享和跨域跨应用会话共享,实现与具体容器无关(tomcat,weblogic,websphere,jetty等),能够统计在线会话数,还能在统一监控中心管理应用会话(删除会话,查询会话数据等),无需使用session_sticky,参考资料:
bboss会话共享培训文档 bboss session共享架构及特点 bboss会话共享demo使用指南 bboss session共享使用方法介绍######Cent0S6.4下测试可用。
只使用了:commons-pool-1.6.jar、jedis-2.1.0.jar、tomcat-redis-session-manager-1.2-tomcat-6.jar这三个包。jdk是1.6的,apache-tomcat-6.0.33.tar.gz。
在浏览器下,需要往session里设置一次key值才能由redis共享session。
######你Redis和tomcat不在一个服务器?######回复 @梦幻de风 : 1,用tomcat的session复制,效率低.2,保存一个key到cookie,数据放到redis,用key去取######@Rlserim 对,多个tomcat共享session,一个tomcat死掉了,集群中的另外一个tomcat能无缝的把操作都连接起来!######回复 @梦幻de风 : 你是想多个tomcat之间session共享还是什么?######对,不在######我在window10 64位 搭建成功得 可以看我的博客
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。