Tomcat Clustering Using Redis

In this article, I've shared my experience with Tomcat session clustering using Redis.

Redis session manager is plug-gable one. It uses to store sessions into Redis for easy distribution of HTTP Requests across a cluster of Tomcat servers. Sessions are implemented as as non-sticky i.e, each request is forwarded to any server in round-robin manner.

The HTTP Requests session setAttribute(name, value) method stores the session into Redis (must be Serializable) immediately and the session getAttribute(name) method request directly from Redis. Also, the inactive sessions has been removed based on the session time-out configuration.

It supports, both single redis master and redis cluster based on the RedisDataCache.properties configuration.

Going forward, we no need to enable sticky session (JSESSIONID) in Load balancer.

Tomcat Cluster

Session objects in Redis looks like below,

Tomcat clustering in Redis

I've published the code in GitHub -> Redis Session Manager