在Tomat7上使用Redis保存Session

jopen 10年前

当用户量大、应用服务器使用集群来布署时,使用Tomcat默认自带的Session就不能满足需求了。当然解决方法有很多,本文提供了一个解决方案,就是使用Redis来保存Session,好处就是使用Session的代码没有任何变化,Tomcat默认把 Session保存到Redis上面了。

使用 Redis 服务器来存储Session非常有优势。首先它是一个NOSQL数据,第二它很容易扩展使用。

下面这种安装方式非常清晰明白的引导你把Redis缓存作为一个Session的存储系统。步骤如下:

1. 下载Redis并且使用下面的命令编译安装:

wget http://download.redis.io/redis-stable.tar.gz   tar xvzf redis-stable.tar.gz   cd redis-stable   make

2. 使用如下命令启动Redis

cd RedisDirectory/src  ./redis-server --port 6379

3. 下载最新的Tomcat 7

4. 下载最新的Jedis(一个Redis 的Java客户端),Tomcat Redis Session Manager 和 Apache Commons Pool

5. 将上面所有的Jar包都拷到Tomcat7安装目录下面的Lib目录下

6. 在Tomcat 的conf/context.xml 文件里增加如下内容(或者在server.xml的context块中添加):

<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" />  <Manager className="com.radiadesign.catalina.session.RedisSessionManager"                     host="localhost" <!-- 可选,默认是"localhost" -->                     port="6379" <!-- 可选,默认是 "6379" -->                     database="0" <!-- 可选,默认是 "0" -->                     maxInactiveInterval="60" <!-- 可选,默认是 "60" (单位:秒)--> />

7. 重启Tomcat7,你现你可以看到,Session的内容开始在Redis中创建了。

现在,Tomcat7的Session就保存到Redis中了,而且它也维护着Session的不同方面。

各个组件的下载地址:

Redis:http://redis.io/  JRedis: https://github.com/xetorthio/jedis  Tomcat Redis Session Manager :https://github.com/jcoleman/tomcat-redis-session-manager/downloads  Apache Commons Pool :http://commons.apache.org/proper/commons-pool/download_pool.cgi
来自:http://my.oschina.net/gccr/blog/321083