Skip to content

Latest commit

 

History

History

redisson-tomcat

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

Redis based Tomcat Session Manager

Stores session of Apache Tomcat in Redis and allows to distribute requests across a cluster of Tomcat servers. Implements non-sticky session management backed by Redis.

Supports Apache Tomcat 6.x, 7.x, 8.x, 9.x

Please consider Redisson PRO version for advanced features and support by SLA.

Advantages

Current implementation differs from any other Redis based Tomcat Session Manager in terms of efficient storage and optimized writes. Each session attribute is written into Redis during each HttpSession.setAttribute invocation. While other solutions serialize whole session each time.

Usage

1 Add RedissonSessionManager into tomcat/conf/context.xml

<Manager className="org.redisson.tomcat.RedissonSessionManager"
          configPath="${catalina.base}/redisson.conf" readMode="MEMORY" updateMode="DEFAULT"/>

readMode - read attributes mode. Two modes are available:

  • MEMORY - stores attributes into local Tomcat Session and Redis. Further Session updates propagated to local Tomcat Session using Redis-based events. Default mode.
  • REDIS - stores attributes into Redis only.

updateMode - attributes update mode. Two modes are available:

  • DEFAULT - session attributes are stored into Redis only through setAttribute method. Default mode.
  • AFTER_REQUEST - all session attributes are stored into Redis after each request.

sharedSession - share session across multiple deployed applications. Appropriate solution for migration of EAR based application with multiple WARs hosted previously on JBoss, WebLogic... Works only in readMode=REDIS.
This option available only in Redisson PRO edition.

  • false - don't share single session. Default mode.
  • true - share single session.

Requires to set crossContext setting in tomcat/conf/context.xml

<Context crossContext="true">
...   
</Context>

Cookie path should be the same for all applications and defined in web.xml

<session-config>
   <cookie-config>
      <path>/</path>
   </cookie-config>
   ...
</session-config>

configPath - path to Redisson JSON or YAML config. See configuration wiki page for more details.

2 Copy two jars into TOMCAT_BASE/lib directory:

  1. For JDK 1.8+
    redisson-all-3.8.2.jar

    for Tomcat 6.x
    redisson-tomcat-6-3.8.2.jar
    for Tomcat 7.x
    redisson-tomcat-7-3.8.2.jar
    for Tomcat 8.x
    redisson-tomcat-8-3.8.2.jar
    for Tomcat 9.x
    redisson-tomcat-9-3.8.2.jar

  2. For JDK 1.6+
    redisson-all-2.13.2.jar

    for Tomcat 6.x
    redisson-tomcat-6-2.13.2.jar
    for Tomcat 7.x
    redisson-tomcat-7-2.13.2.jar
    for Tomcat 8.x
    redisson-tomcat-8-2.13.2.jar