基于redis实现会话保持

发布于:2025-03-17 ⋅ 阅读:(15) ⋅ 点赞:(0)

环境描述:

        192.168.140.10        nginx

        192.168.140.11        tomcat服务器        两个tomcat实例

        192.168.140.12        redis服务器        三个redis实例,一主两从实例

        192.168.140.13        redis哨兵

1、配置ngix实现tomcat负载均衡

2、配置tomcat实例

 第二个实例要更改的地方和上方一致

增加执行权限

 进行启动

测试页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://
www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8">
<title>你好</title>
</head>
<%for(int i=1;i<=6;i++){ %>
<h<%=i%> align="center">欢迎访问 tomcat 1 jsp页面!</
h<%=i%>>
<%} %>
<body>
<center>
<%= request.getSession().getId() %>
</body>
</html>

 

3、通过nginx访问tomcat,此时tomcat会话ID是非持久的

4、配置redis一主两从环境

1)安装redis2.6

2)配置 redis多实例

 

 

3)配置一主多从

7003同上

4)验证一主多从成功

 5、配置哨兵
1) 安装redis 2.6

2) 复制哨兵配置文件

3) 编辑配置文件

 

4) 启动哨兵

需要使用redis-sentiner命令来启动哨兵在redis解压目录里为方便使用拷贝到redis安装目录bin目录中

6、配置tomcat连接redis哨兵保存会话

1)将jar包复制到tomcat

2)编辑tomcat实例配置文件,指定redis集群的信息

 在Context标签中添加配置信息

<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
   <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
         maxInactiveInterval="60"
         sentinelMaster="mymaster"
         sentinels="192.168.140.13:26379"
   />

第二个实例同上

7、测试访问nginx,查看会话ID是否一致