在Tomat7上使用Redis保存Session

jopen 10年前發布 | 66K 次閱讀 Redis Tomcat 應用服務器

當用戶量大、應用服務器使用集群來布署時,使用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

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!