You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
redisson/redisson-tomcat/README.md

79 lines
3.6 KiB
Markdown

8 years ago
Redis based Tomcat Session Manager
===
8 years ago
6 years ago
Stores session of [Apache Tomcat](http://tomcat.apache.org) in Redis and allows to distribute requests across a cluster of Tomcat servers. Implements non-sticky session management backed by Redis.
8 years ago
7 years ago
Supports Apache Tomcat 6.x, 7.x, 8.x, 9.x
8 years ago
6 years ago
<sub>Consider __[Redisson PRO](https://redisson.pro)__ version for advanced features and support by SLA.</sub>
6 years ago
8 years ago
Advantages
===
8 years ago
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.
8 years ago
8 years ago
Usage
===
8 years ago
6 years ago
### 1. Add `RedissonSessionManager`
Add `RedissonSessionManager` into `tomcat/conf/context.xml`
8 years ago
8 years ago
```xml
<Manager className="org.redisson.tomcat.RedissonSessionManager"
6 years ago
configPath="${catalina.base}/redisson.conf" readMode="REDIS" updateMode="DEFAULT"/>
8 years ago
```
7 years ago
`readMode` - read attributes mode. Two modes are available:
6 years ago
* `MEMORY` - stores attributes into local Tomcat Session and Redis. Further Session updates propagated to local Tomcat Session using Redis-based events.
* `REDIS` - stores attributes into Redis only. Default mode.
7 years ago
<br/>
7 years ago
`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.
7 years ago
<br/>
8 years ago
`configPath` - path to Redisson JSON or YAML config. See [configuration wiki page](https://github.com/redisson/redisson/wiki/2.-Configuration) for more details.
8 years ago
6 years ago
#### Shared Redisson instance
6 years ago
Each RedissonSessionManager created per Web Application and thus creates own Redisson instance. For multiple applications, using the same Redis setup, amount of Redisson instances could be reduced using JNDI registry:
1. Add shared redisson instance produced by `JndiRedissonFactory` into `tomcat/conf/server.xml` in `GlobalNamingResources` tag area:
```xml
<GlobalNamingResources>
6 years ago
<Resource name="bean/redisson"
auth="Container"
6 years ago
factory="org.redisson.JndiRedissonFactory"
6 years ago
configPath="${catalina.base}/conf/redisson.yaml"
closeMethod="shutdown"/>
6 years ago
</GlobalNamingResources>
```
2. Add `JndiRedissonSessionManager` with resource link to redisson instance into `tomcat/conf/context.xml`
```xml
<ResourceLink name="bean/redisson"
global="bean/redisson"
type="org.redisson.api.RedissonClient" />
<Manager className="org.redisson.tomcat.JndiRedissonSessionManager"
readMode="REDIS"
jndiName="bean/redisson" />
```
6 years ago
### 2. Copy two jars into `TOMCAT_BASE/lib` directory:
8 years ago
6 years ago
[redisson-all-3.10.4.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-all&v=3.10.4&e=jar)
8 years ago
6 years ago
for Tomcat 6.x
6 years ago
[redisson-tomcat-6-3.10.4.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-tomcat-6&v=3.10.4&e=jar)
6 years ago
for Tomcat 7.x
6 years ago
[redisson-tomcat-7-3.10.4.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-tomcat-7&v=3.10.4&e=jar)
6 years ago
for Tomcat 8.x
6 years ago
[redisson-tomcat-8-3.10.4.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-tomcat-8&v=3.10.4&e=jar)
6 years ago
for Tomcat 9.x
6 years ago
[redisson-tomcat-9-3.10.4.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-tomcat-9&v=3.10.4&e=jar)
8 years ago