zoukankan      html  css  js  c++  java
  • Redis实现分布式存储Session

    前言:

      在单个项目时,一般都是用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分 但是在线上的运行的时候,不到一个小时就自动退出了,这个问题这两天我一直再找。

      

  • 相关阅读:
    SpringBoot使用token简单鉴权
    SpringBoot-dubbo自定义负载均衡实现简单灰度
    SpringBoot基于数据库实现简单的分布式锁
    使用canal增量同步mysql数据库信息到ElasticSearch
    使用go-mysql-elasticsearch同步mysql数据库信息到ElasticSearch
    使用logstash同步mysql数据库信息到ElasticSearch
    extract()函数:用于从一个date或者interval类型中截取到特定的部分
    转://IO的基础概念
    转://MySQL客户端工具的选择
    转://oracle 软件的收费模式
  • 原文地址:https://www.cnblogs.com/zkdayup/p/9639103.html
Copyright © 2011-2022 走看看