Session共享

Session共享

相关参考英语文档:https://github.com/xetorthio/jedis
感谢!
-为什么要实现Session共享?
-Session主要是存储用户信息的,每个用户都会有一个对应的Sessionid,那么在Nginx集群下,有可能用户会因为服务器升级等问题而需要登录到其他服务器,登录其他服务器时,因为服务器并没有用户的信息,就会需要需要重新生成用户信息,所以我们需要实现Session共享,让每一台服务器都能访问知道Session。也不用重复生成啦。

Session相关信息:https://blog.csdn.net/hjc1984117/article/details/53995816
感谢!	

具体实现

-我们将Session放到Redis里面,用户登录的时候访问到服务器之后,不管是哪台服务器都会去找这一个共同的Redis,

-1. Tomcat里面的lib文件中放三个jar包
		.jar文件中就是存在Session管理器
-2. 然后再修改一下conf文件夹中的context.xml
-3. 测试:在每个Tomcat中的/webapps/ROOT文件夹中添加add.jsp和
-get.jsp,

验证

-1.最后进到每个服务器的tomcat/bin目录中启动tomcat:
./shutdown.sh
./startup.sh
-2. 然后在浏览器输入ip:8080进行验证,页面会出现相应jsp页面数据,
-验证好之后只能说明我们的服务器的Session管理器配好啦,

-3. Session共享的验证我们则需要正式的模拟用户从域名进行访问,
-查看是否有服务器的跳转。例如:
-域名.cn.get.jsp
页面正常情况会在几台服务器中进行跳转。
-4. 登录Redis输入keys * 查看是否有Session的id

nginx的权重设置在 /usr/local/nginx/conf/.conf(待写)

-注意:实现Session共享每个Tomcat服务器中都需要做以上操作。

补充

-1. 三个jar包可以打包成tar,用bitvise远程连接工具进行文件的上传,三个jar包
存放在Tomcat中的位置	是tomcat中的lib文件下;
-2. context.xml文件修改内容:

	在文件最后</Context>前输入:

<Valve className="com.bluejeans.tomcat.redissessions.RedisSessionHandlerValve" />

<Manager className="com.bluejeans.tomcat.redissessions.RedisSessionManager"
    host="192.168.154.130"
    port="6379"
    database="0"
    maxInactiveInterval="60"
    sessionPersistPolicies="SAVE_ON_CHANGE"
/>
get.jsp具体内容:

	<%@ page contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
<html>
  <body>
<h1>132 Get Session</h1>
    <%
        Object val=session.getAttribute("demo");
        out.println("132 get Session OK!"+ val);
    %>
  </body>
</html>

add.jsp:
<%@ page contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
<html>
  <body>
    <h1>132 Save Session</h1>
    <%
        session.setAttribute("demo", "Hello Redis!");
        out.println("132 add Session OK!");
    %>
  </body>
</html>




-不同服务器要修改的Context主要是主机ip就行
-3.为了区别每台服务器在浏览器的显示,则在复制app.jsp和get.jsp后,也在里面修改
成具体的主机后缀,



-复制粘贴技巧:将几个文件进行特定文件tar打包,例如:
tar -cvzf redis-session.tar.gz lib/jedis-2.5.2.jar lib/commons-pool2-2.2.jar/ lib/tomcat-redis-session-manager-2.0.0.jar conf/context.xml webapps/ROOT/add.jsp webapps/ROOT/get.jsp

解压:tar -zxvf redis-session.tar.gz
解压会按照我们打包时的特定路径进行文件的解压粘贴

面试问题:

-你们的项目有什么特点:
	我们的项目解决了高并发问题,利用的是Nginx反向代理集群解决的 
-那你们的Session是怎么处理的呢?
	我们用Redis进行Session的共享了,数据是放在mysql里面的。

使用 Redis 提升软件性能

在一般的商城项目中,类似商品热销、推荐的排序,用户经常访问的一些数据放在Redis里面。
以致于提高软件的高性能。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员西柚柚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值