`
lvyanglin
  • 浏览: 86072 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

tomcat的session存入redis配置

    博客分类:
  • java
阅读更多
在java web环境中一般都会有回话session存储登陆信息和用户信息,在负载均衡的时候都要处理这些回话信息,以前处理方式都会用同步套件的方式来处理,后来为了规避这个问题,直接session外置处理,就是直接在外置缓存或数据库中存储,在页面里面就不用tomcat的session,在业务上定义一个缓存对象作为session.但是基于既有的系统改造,或者是使用了一些登陆或权限认证的框架的系统之后再想做多借点负载均衡的话,就需要改造很多代码甚至架构。其实tomcat提供了session外置的方案,放入mc或redis.比如要放入redis:
tomcat7作为例子来说:

根据官方提供的文档
https://github.com/jcoleman/tomcat-redis-session-manager

有这么段话

Copy the following files into the TOMCAT_BASE/lib directory:


    tomcat-redis-session-manager-VERSION.jar
    jedis-2.5.2.jar
    commons-pool2-2.2.jar


<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
         host="localhost" <!-- optional: defaults to "localhost" -->
         port="6379" <!-- optional: defaults to "6379" -->
         database="0" <!-- optional: defaults to "0" -->
         maxInactiveInterval="60" <!-- optional: defaults to "60" (in seconds) -->
         sessionPersistPolicies="PERSIST_POLICY_1,PERSIST_POLICY_2,.." <!-- optional -->
         sentinelMaster="SentinelMasterName" <!-- optional -->
         sentinels="sentinel-host-1:port,sentinel-host-2:port,.." <!-- optional --> />




tomcat7启动之后一定会报错的,后来改成jedis-2.2.jar和commons-pool-1.6.jar之后就不报错,注意上面那个xml文档中说可以放在server.xml,但是我试了是报错的,还是老实的加入到context.xml中。

还有这种方式,tomcat接入的redis只能配置一个节点,可以修改下源代码,实现多节点。

  • 大小: 46.9 KB
分享到:
评论
1 楼 Aceslup 2015-09-06  
怎么更换都不行呢。楼主能提供jar吗?

相关推荐

    tomcat8+redis

    例如,你可以在Servlet的`doGet`或`doPost`方法中检查请求的数据是否已经在Redis中,如果存在则直接返回,否则才查询数据库并把结果存入Redis,以便后续请求使用。 此外,为了确保高可用性和可扩展性,你可能还会...

    Tomcat7+redis实现session共享

    3. **配置redis session store**:引入`spring-session-data-redis`或`tomcat-redis-session-manager`等相关依赖库,这两个库提供了将session数据保存到`redis`的接口。在`web.xml`中,配置`SessionConfig`,指定...

    commons-pool2-2.0.jar  jedis-2.7.2.jar  tomcat-redis-session-manage-tomcat8.jar

    在这个场景下,Jedis作为连接Tomcat8和Redis的桥梁,负责将session数据序列化后存入Redis,以及从Redis中检索并反序列化回session对象。 `tomcat-redis-session-manager-tomcat8.jar`是Tomcat的session管理器插件,...

    tomcat-redis-session管理 使用说明

    通过将Tomcat的Session数据序列化后存入Redis,可以实现跨服务器的Session共享,提高可扩展性和高可用性。 【三、集成Tomcat与Redis】 1. 添加依赖:首先,需要将Redis客户端的JAR包(如jedis)引入到Tomcat的lib...

    redis-session-manager-tomcat6共享包

    在描述中提到的“修复了redis-session-manager-tomcat6包存入null值的session时报空指针问题”,这表明在之前的版本中,当试图将null值存储到session时,由于某些原因可能会触发Java中的NullPointerException。...

    tomcat-redis-session-manager-master.zip

    - `createSession()`方法用于创建新的session,它会生成一个唯一的session ID,并将session信息序列化后存入Redis。 - `removeSession()`方法负责销毁session,它会在Redis中删除对应的session键。 - `getSession...

    tomcat7-redis session共享jar包

    这个特定的JAR文件可能包含了与Redis通信的类、配置文件和其他辅助资源,使得Tomcat 7能够将会话数据透明地存入Redis。 5. **集成步骤**:使用这个jar包通常涉及以下步骤:(1) 将jar包添加到Tomcat的类路径中;(2) ...

    tomcat8.redis4.0.1,ngixn1.9.5 ,实现session共享

    - 其他服务器监听Redis事件,接收到新Session数据后进行反序列化,存入本地Session存储。 5. **优化与安全考虑**: - 考虑使用Spring Session或者其他框架集成Redis,简化配置并提供更多的功能。 - 考虑Session...

    redis linux(集群&单机) + Tomcat Session共享

    资料中提供了将Session存储到Redis的方案,利用`Jedis`库作为连接Redis的客户端,通过`HttpSessionListener`监听Session的创建和销毁,将Session对象序列化并存入Redis。 4. **Tomcat集群Session共享**:集群环境下...

    tomcat7 集群通过redis共享session 所需jar包

    - **编写Session监听器**:可能需要实现`HttpSessionListener`和`HttpSessionAttributeListener`接口,以便在Session创建、修改和销毁时进行相应操作,如将Session数据存入或取出Redis。 - **测试和优化**:部署...

    tomcat+redis 实现session共享

    为了解决这个问题,我们可以采用外部存储机制来共享Session,如将Session数据存入Redis这样的内存数据库。本文将详细介绍如何使用Tomcat和Redis实现Session共享,并提供相关的jar包及配置说明。 首先,我们需要理解...

    nginx+tomcat shiro实现多tomcat下session共享

    将session存储在Redis中,每个Tomcat实例在处理请求时,都会将session数据存入Redis,并从Redis中读取session。 5. **配置步骤**: - **安装Redis**:首先,需要在服务器上部署Redis实例并确保其正常运行。 - **...

    tomcat集群session共享

    4. **session序列化**:由于session对象是Java对象,需要序列化才能存入Redis。默认的Java序列化可能会导致性能问题,因此可以考虑使用高效的序列化库,如Google的FST或Kryo。 5. **集群同步策略**:Tomcat可以通过...

    nginx_tomcat_redis搭建负载均衡共享session

    通过将用户的会话数据(例如JSESSIONID)存入Redis,所有Tomcat实例都可以访问这些数据,从而实现跨服务器的会话共享。具体实现方式可以是在每个Tomcat实例中配置一个RedisSessionManager,该管理器负责将session...

    使用Redis存放Session RedisManager.7z

    在将Session数据存入Redis时,通常需要将Java对象序列化为字节流,再由Redis接收并存储。Java对象序列化允许我们将Java对象转换为字节流,以便在网络中传输或存储。而反序列化则是将字节流恢复为原始的Java对象。...

    session 存入数据库

    3. **配置Web容器**:某些Web容器如Tomcat提供了配置选项,可以直接设置将Session信息存储到指定的数据库中。 4. **编程实现**:在每次Session创建或更新时,手动操作数据库,将Session数据写入。 ### 实现细节 - ...

    Tomcat集群Session共享

    - 实现过程:用户登录后,将Session ID与用户信息存入Redis,并在客户端设置一个Cookie携带Session ID。后续请求通过Cookie传递Session ID,服务器从Redis中查找对应Session信息。 - 优点:分布式存储,扩展性强,...

    nginx+redis负载均衡和session粘滞

    Nginx的配置文件中需要包含负载均衡和session粘滞的规则,Tomcat的配置文件需要配置Redis session manager,而Redis服务则需要正常运行,以便存储和检索session数据。 **总结** 通过Nginx的负载均衡和session粘滞...

    tomcat7 jedis session 同步

    3. **配置Tomcat**:修改Tomcat的`context.xml`配置文件,添加一个`Manager`元素,配置为`org.apache.catalina.session.PersistentManager`,并指定`storeClass`为`org.apache.catalina.session.JDBCStore`。...

    Tomcat集群Session共享所有文件.zip

    3. **基于缓存的Session共享**:如使用Memcached或Redis等分布式缓存系统,各服务器将Session数据存入缓存,实现共享。这种方法效率较高,但需要额外的缓存管理。 4. **JVM间Session复制**:Tomcat通过配置`...

Global site tag (gtag.js) - Google Analytics