实现session共享需要实现负载均衡,可以参看上一篇文章:
1.redis简介及下载安装
redis是一款开源的高性能key-value数据库,拥有丰富的键值储存类型,并提供多种语言的API。与一般数据库不同,redis是使用内存作为主存,而使用硬盘来实现数据持久化,而且redis是周期性的将数据写到硬盘上。这就意味着一旦我们服务器出现断电、重启之类的情况,我们很可能会出现数据丢失的情况,所以不建议使用redis来存放关键的数据。当然,也正因为redis读写数据都使用内存,所以它的速度是非常快的,很适合我们来存放一些临时性的数据。
先下载redis,windows版本下载地址
redis在windows下是免安装的,下载完成后,解压,将文件夹复制到自己某个盘中就好了。
(附:打开redis配置文件redis.windows.conf,找到requirepass 123456 可以设置密码,我设置为123456)
下面我们打开redis。首先打开cmd,进入我们redis目录下,输入redis-server.exe redis.windows.conf。出现下面界面,则打开成功。(不可偷懒想双击redis-server.exe完事,这样虽然也能打开,但不会加载配置文件)。
2.下载所需jar包
3. 将所需jar包拷贝到 tomcat文件夹中的lib 目录下
4. 修改Tomcat文件夹中conf文件夹下的context.xml
在<context>标签内加入如下配置:
<ValveclassName="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve"/>
<ManagerclassName="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="主机地址"
port="6379" <!—redis端口号 -->
database="0"
password="123456" <!—redis 密码 , 不是必选项 -->
maxInactiveInterval="60"/>
5. 启动nginx , redis , Tomcat,打开测试页面
测试页面分为Tomcat A和Tomcat B代码如下: (B页面省略,内容一样)
<body>
<h1>
<font color="red">Tomcat A </font>
</h1>
<table border="1">
<tr>
<td>Session ID</td>
<td><%=session.getId()%></td>
</tr>
<tr>
<td>Created on</td>
<td><%=session.getCreationTime()%></td>
</tr>
</table>
</body>
此时,两个页面的sessionID一样,已实现了session共享。