实现原理:分布式系统将session存储到redis中,读取也从redis中读取。

分布式session之tomcat+redis_其他

将实现包和依赖包commons-pool2-2.3.jar、jedis-2.7.2.jar、tomcat8_redis_session-0.0.1-SNAPSHOT.jar拷贝到tomcat的lib下

新增tomcat context.xml配置

<Valve className="com.demo.redis_session.RedisSessionHandlerValve" />
<Manager className="com.demo.redis_session.RedisSessionManager"
host="127.0.0.1"
port="6379"
database="0"
maxInactiveInterval="60" />

集群配置方案(哨兵):

< Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
sentinelMaster="mymaster"
sentinels=":26379,:26379,:26379"
maxInactiveInterval="60"/>

优缺点:
(1) 方便,但是与tomcat容器重耦合,如果我要将web容器迁移到jetty中,难道要重新把jetty配置一遍吗?
(2) 使用 session 的代码,跟以前一样,还是基于 tomcat 原生的 session 支持即可,然后就是用一个叫做 Tomcat RedisSessionManager 的东西,让所有我们部署的 tomcat 都将 session 数据存储到 redis 即可。