前言:

在单个项目时,一般都是用HttpSession接口存储当前登录用户的信息。但是在分布式项目的情况下,session是不会共享的,那怎么实现session共享呢?往下看。。。。

一、准备工作(基于centos7)

  1.linux版本的redis 下载地址:http://download.redis.io/releases/redis-3.2.9.tar.gz

  2.commons-pool2.jar 下载地址:https://pan.baidu.com/s/1nFU0oINw_1c_LKHa05JRHA 密码:traq

  3.jedis-2.5.2.jar 下载地址:https://pan.baidu.com/s/159z7Q4qa3fuHBih2NOA9SQ 密码:3xyi

  4.tomcat-redis-session-manager 下载地址:https://pan.baidu.com/s/1DCwnioyK_nhrMRd8AEOIMg 密码:5476

  5.tomcat7 下载地址:http://mirrors.hust.edu.cn/apache/tomcat/tomcat-7/v7.0.90/bin/apache-tomcat-7.0.90.tar.gz

  6.redis可视化工具(windowns版)下载地址:https://pan.baidu.com/s/1Jxp8I-7AK6dqrjUGYoeB1g 密码:0op5

二、配置

  1.把 commons-pool2.jar,jedis-2.5.2.jar,tomcat-redis-session.manager.jar 这三个jar包放到tomcat的lib下

  2.修改tomcat端口,不修改记得开放当前tomcat的端口

  3.修改tomcat conf目录下的conetxt.xml 

<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="127.0.0.1"
port="6379"
database="0"
maxInactiveInterval="60" />

  4,启动redis ,启动命令:redis-server redis.conf

  5,修改tomcat webapp下ROOT,index.jsp 把

  删除第一个红框,增加第一个红框,

  启动tomcat,可以看见,当前的sessionId,打开redis可视化工具连接服务器,看页面的sessionId和reids客户端的是否一致,

  这时可以多开几个tomcat看一下,每隔tomcat的sessionId是否一致。

 三、问题

  session失效时间:

    设置实销时间,需要在项目的web.xml和tomcat的web.xml设置session-config,timeout 。时间单位为分钟,记住不要在tomcat的conetxt.xml中设置,否则是不会生效的。

  session的时间重置

    每次request请求都会刷新session,使得Session的销毁时间最后一次操作加你设置的时间

  session会提前销毁。

    这是我在项目中遇到的问题,我在项目中设置登陆用session的失效时间是60分 但是在线上的运行的时候,不到一个小时就自动退出了,这个问题这两天我一直再找。

  

Redis实现分布式存储Session的更多相关文章

  1. 基于redis的处理session的方法

    一个基于redis的处理session的方法,如下. <?php class Session_custom { private $redis; // redis实例 private $prefi ...

  2. Redis学习笔记~StackExchange.Redis实现分布式Session

    回到目录 对于多WEB的环境现在已经是必须的了,很难想像一台WEB服务器面对百万并发的响应,所以,我们需要多台WEB服务器集群合作,来缓解这种高并发,高吞吐的场景,而对于多WEB的场景又会有个问题出现 ...

  3. 基于Redis缓存的Session共享(附源码)

    基于Redis缓存的Session共享(附源码) 在上一篇文章中我们研究了Redis的安装及一些基本的缓存操作,今天我们就利用Redis缓存实现一个Session共享,基于.NET平台的Seesion ...

  4. springboot 集成spring-session redis 实现分布式session

    gradle 添加依赖 compile("org.springframework.session:spring-session:1.3.0.RELEASE") compile(&q ...

  5. springboot+redis实现分布式session共享

    官方文档,它是spring session项目的redis相关的一个子文档:https://docs.spring.io/spring-session/docs/2.0.0.BUILD-SNAPSHO ...

  6. SpringBoot进阶教程(二十六)整合Redis之共享Session

    集群现在越来越常见,当我们项目搭建了集群,就会产生session共享问题.因为session是保存在服务器上面的.那么解决这一问题,大致有三个方案,1.通过nginx的负载均衡其中一种ip绑定来实现( ...

  7. springboot集成springsession利用redis来实现session共享

    转:https://www.cnblogs.com/mengmeng89012/p/5519698.html 这次带来的是spring boot + redis 实现session共享的教程. 在sp ...

  8. Redis实现分布式Session

    相关博客: http://www.cnblogs.com/yanweidie/p/4763556.html http://www.cnblogs.com/lori/p/5368722.html?utm ...

  9. Spring-session redis 子域名 session

    Spring-session & redis 子域名共享session 例子: a.example.comb.example.comSpring 版本 4.2.6.RELEASE Spring ...

随机推荐

  1. iconv-go升级过程中的编译问题

    工作项目原因,需要对golang进行升级.升级之后老的iconv-go运行有问题.因为新的golang运行更加严格,所以需要升级iconv-go. 从djimenez/iconv-go 拉下来代码进行 ...

  2. [Tools]SurveyMonkey

    做问卷调查,推荐一个好工具,免费的 SurveyMonkey : it's free, quick & easy! https://www.surveymonkey.com/

  3. Facebook对MySQL全表扫描性能的改进

    原文博客如下: http://yoshinorimatsunobu.blogspot.com/2013/10/making-full-table-scan-10x-faster-in.html 如下是 ...

  4. Some details of UIKit

    [Some details of UIKit] 1.UIViewController的toolbarItems属性与UINavigationController配合使用. 2.The view for ...

  5. Golang使用pkg-config自动获取头文件和链接库的方法

    为了能够重用已有的C语言库,我们在使用Golang开发项目或系统的时候难免会遇到Go和C语言混合编程,这时很多人都会选择使用cgo. 话说cgo这个东西可算得上是让人又爱又恨,好处在于它可以让你快速重 ...

  6. mongoTemplate更新一个Document里面的数组的一个记录。

    假如有一个Document如下: { "_id" : "69bca85a-5a61-4b04-81fb-ff6a71c3802a", "_class& ...

  7. 苹果禁用UUID了,咋办?

    By now you have probably heard that Apple is deprecating support for attaining a UDID from an iOS de ...

  8. XXX 不是当前用户的有效责任,请联系您的系统管理员

    EBS中,有时进入一些基于OA Framework 的Web页面时,会出现这种现象: XXX  不是当前用户的有效责任,请联系您的系统管理员 ( or: xxx is not a valid resp ...

  9. github的使用经历

    首先我打开百度搜索markdown,点击这个在线编辑器,开始编写,如下图: 预览效果如下: 然后打开github的网页登录后,点击下图这个标志: 然后给给要上传的一个命名: 然后选择README 确认 ...

  10. Objective-C 学习笔记(五) 指针

    Objective-C 指针 每一个变量是一个内存位置和每一个存储单元都有其定义的地址,可以使用符号(&)的运算符,它表示内存中的地址访问. a. 我们定义一个指针变量 b. 分配一个指针变量 ...