Redis Session Manager for Apache Tomcat
Tomcat使用Redis缓存Session,集中把Session缓存到Redis服务器中,而不是缓存到服务器的内存中,可以实现集群服务器共享Session。
到目前为止,官方支持Tomcat6和Tomcat7,Tomcat8目前还没有正式支持,等待更新吧。
可以从下面的地址下载jar包
GitHub地址:https://github.com/jcoleman/tomcat-redis-session-manager
1、在Tomcat的配置文件context.xml中添加下面这段配置代码(注意注释要去掉),另外,如果Redis有设置密码的,也要设置上去。
单点配置:
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="localhost" <!-- 可选: 默认"localhost" -->
password="" <!-- 可选: Redis密码 -->
port="6379" <!-- 可选: 默认"6379" -->
database="0" <!-- 可选: 默认"0" -->
maxInactiveInterval="60" <!-- 可选: 默认"60" (秒) --> />
集群配置:
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
sentinelMaster="MySentinelMaster" <!-- 可选-->
sentinels="192.168.1.1:8080,192.168.1.2:8081,.." <!-- 可选 -->
/>
2、在Tomcat目录的lib下,添加3个jar包:
tomcat-redis-session-manager-VERSION.jar
jedis-2.5.2.jar
commons-pool2-2.2.jar
直接点击链接就可以下载,注意jedis的版本不要太高,不然会报错。
3、启动Tomcat即可,记得开启Redis服务。
遇到的问题:
1、连接不上远程服务器的Redis
Redis默认是设置本地访问的,要想开启远程访问,需要修改配置文件,修改Redis配置文件,找到bind 127.0.0.1或者bind localhost注释掉,bind是允许IP地址访问的意思,设置了只能固定某个IP地址访问,可以设置多个,如:bind 127.0.0.1 192.168.1.1。
其它注意问题看下面的博客
参考博客:http://blog.csdn.net/caiwenfeng_for_23/article/details/45666831