(转)Tomcat7+Redis存储Session

原创http://blog.csdn.net/caiwenfeng_for_23/article/details/45666831

PS:截止到2015-05-12前是不支持Tomcat8的,详情见官网:https://github.com/jcoleman/tomcat-redis-session-manager

前提:你已经部署了Redis,尚未学会的,可以移步这里:http://blog.csdn.net/caiwenfeng_for_23/article/details/45511007

我的案例下载:http://download.csdn.net/detail/caiwenfeng_for_23/8689847

其实很简单,就几个步骤: 
1.配置Tomcat的conf目录下的context.xml文件:

1> 单点Reids配置

    <!--
    Jedis save session
    -->
    <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
    <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
        host="localhost"
        port="6379"
        database="0"
        maxInactiveInterval="60"/>

2> Sentinel集群配置:

        <!-- Sentinel 配置 -->
     <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
    <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
        maxInactiveInterval="60"
        sentinelMaster="mymaster"
        sentinels="127.0.0.1:26379,127.0.0.1:26380,127.0.0.1:26381,127.0.0.1:26382"
        />

2.添加jar

3.测试

1> 
存储Session:

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("hello");
           //取得Session对象
        HttpSession session=request.getSession();
        //设置Session属性
        for(int i=0;i<100000;i++){
            session.setAttribute("name"+i, "Magci_"+i);
        }
    }

2>重启Tomcat:假如Session保存在tomcat下,重启后Session不存在;如果保存在Redis下,Tomcat重启对Session无影响

3>取出Session:

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("hello");
           //取得Session对象
        HttpSession session=request.getSession();
        //取出Session属性
        for(int i=0;i<100000;i++){
            System.out.println(session.getAttribute("name"+i));
        }
    }

注意事项:从Tomcat6开始默认开启了Session持久化设置,测试时可以关闭本地Session持久化,其实也很简单,在Tomcat的conf目录下的context.xml文件中,取消注释下面那段配置即可:

    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
    <!--
    <Manager pathname="" />
    -->

详见这篇博客:Session持久化的实例分析

时间: 2024-10-05 23:09:04

(转)Tomcat7+Redis存储Session的相关文章

Tomcat7+Redis存储Session

PS:截止到2015-05-12前是不支持Tomcat8的,详情见官网:https://github.com/jcoleman/tomcat-redis-session-manager 前提:你已经部署了Redis,尚未学会的,可以移步这里:http://blog.csdn.net/caiwenfeng_for_23/article/details/45511007 我的案例下载:http://download.csdn.net/detail/caiwenfeng_for_23/8689847

Redis存储Session

net Core 使用Redis存储Session 前言 Asp.net Core 改变了之前的封闭,现在开源且开放,下面我们来用Redis存储Session来做一个简单的测试,或者叫做中间件(middleware). 对于Session来说褒贬不一,很多人直接说不要用,也有很多人在用,这个也没有绝对的这义,个人认为只要不影什么且又可以方便实现的东西是可以用的,现在不对可不可用做表态,我们只关心实现. 类库引用 这个相对于之前的.net是方便了不少,需要在project.json中的depend

Asp.net Core 使用Redis存储Session

前言 Asp.net Core 改变了之前的封闭,现在开源且开放,下面我们来用Redis存储Session来做一个简单的测试,或者叫做中间件(middleware). 对于Session来说褒贬不一,很多人直接说不要用,也有很多人在用,这个也没有绝对的这义,个人认为只要不影什么且又可以方便实现的东西是可以用的,现在不对可不可用做表态,我们只关心实现. 类库引用 这个相对于之前的.net是方便了不少,需要在project.json中的dependencies节点中添加如下内容: "StackExc

redis存储session配制方法

redis存储session配制方法需要三个模块: 1.redis 2.express-session 3.connect-redis 项目中的配置方法代码片段如下: 首先连接redis,连接redis数据库: 1 var redis = require('redis'); 2 var redis_client = redis.createClient('6379', redis_host); 3 redis_client.on('error', function (err) { console

Tomcat 使用Redis存储Session

Tomcat Redis Session Github 地址. 下载 commons-pool2-2.2.jar,jedis-2.5.2.jar,tomcat-redis-session-manager-2.0.0.jar 这三个包,将其放到 tomcat 目录下的lib目录下. 修改tomcat 的conf目录下的 context.xml 文件. 在Context中插入下面的代码. <Valve className="com.orangefunction.tomcat.redissess

redis使用基础(十) ——Redis存储Session

redis使用基础(十) --Redis存储Session (转载请附上本文链接--linhxx) 一.概述 PHP默认是将session存于服务器的文件中.当并发量大,此方式效率低,因此可以采用redis存储session. 要改变session的存储位置,首先要改变php.ini中的配置项session.save_handler,将其值设置为user. 二.改变存储位置函数 php内置的函数session_set_save_handler可以重新设定session的保存方式,包括sessio

redis慢查询日志、php安装redis扩展、redis存储session、redis主从配置

一:redis慢查询日志 编辑配置文件/etc/redis.conf针对慢查询日志,可以设置两个参数,一个是执行时长,单位是微秒,另一个是慢查询日志的长度.当一个新的命令被写入日志时,最老的一条会从命令日志队列中被移除. slowlog-log-slower-than 1000 //单位ms,表示慢于1000ms则记录日志slowlog-max-len 128 //定义日志长度,表示最多存128条slowlog get //列出所有的慢查询日志slowlog get 2 //只列出2条slowl

windows php5.5安装redis扩展,并用redis存储session

1.确定安装版本 先通过phpinfo()查看php的Compiler.Architecture.Thread Safety,其中Thread Safety如果是enabled,那么就是线程安全(ts),如果是disabled,则是线程不安全(nts),确定好以后,开始下载扩展. 2.下载redis扩展 下载地址:https://windows.php.net/downloads/pecl/releases/redis/2.2.7/ 我选择了redis-2.2.7-5.5-ts-vc11-x86

nginx+tomcat7+redis实现session共享(单点redis)

本文主要介绍redis的安装和配置.nginx和tomcat已经写过一篇很详细的文档.请参考:http://francis905.blog.51cto.com/3048056/1716740 实验环境:3台虚拟机(pc1:nginx1.6.3,pc2:tomcat7+redis2.6.13,pc3:tomcat7+redis2.6.13) 实验目的:通过redis实现session的共享 [注]棕色为必须做的 其他作为资料延伸 cd /usr/local/src tar zxvf redis-2