利用redis实现tomcat session共享
2017-07-10 11:13
190 查看
需要在tomcat的lib目录下放入引用jar包
commons-pool-1.6.jarjedis-2.1.0.jar tomcat-redis-session-manager-1.2-tomcat-7.jar
修改tomcat的conf目录下的context.conf文件,添加如下红字配置
<Context>
<!-- Defaultset of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<!-- Uncommentthis to disable session persistence across Tomcat restarts -->
<!--
<Managerpathname="" />
-->
<!-- Uncommentthis to enable Comet connection tacking (provides events
on sessionexpiration as well as webapp lifecycle) -->
<!--
<ValveclassName="org.apache.catalina.valves.CometConnectionManagerValve"/>
-->
<ValveclassName="com.radiadesign.catalina.session.RedisSessionHandlerValve"/>
<ManagerclassName="com.radiadesign.catalina.session.RedisSessionManager"
host="193.160.31.24"
port="6379"
password="fnst1234"
maxInactiveInterval="3600"/>
</Context>
其中,host是redis数据库的IP地址,port是redis数据库的访问地址,password是访问密码,maxInactiveInterval是session的有效时间,3600即有效时间为一个小时。
session的确认与调试
3.1用IE的抓包工具找出sessionid(据说要IE11才有)
如下图所示,在调试工具里,监听网络,然后再详细信息的Cookie可以找到当前session值,然后到redis里确认下,是否存在这个key
session共享后,nginx原来的ip_hash的算法就可以去掉,改为weight的权重算法。
server193.160.31.22:8080 weight=3;
server193.160.31.23:8080 weight=2;
2.redis如何保证内存中的数据的安全性。
redis会定时将内存中的数据写入文件,以防丢失。
至少kill redis或者重启机器,都不会导致数据丢失。
突然断电的情形由于机房的电源够不着,只能作罢。
commons-pool-1.6.jarjedis-2.1.0.jar tomcat-redis-session-manager-1.2-tomcat-7.jar
修改tomcat的conf目录下的context.conf文件,添加如下红字配置
<Context>
<!-- Defaultset of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<!-- Uncommentthis to disable session persistence across Tomcat restarts -->
<!--
<Managerpathname="" />
-->
<!-- Uncommentthis to enable Comet connection tacking (provides events
on sessionexpiration as well as webapp lifecycle) -->
<!--
<ValveclassName="org.apache.catalina.valves.CometConnectionManagerValve"/>
-->
<ValveclassName="com.radiadesign.catalina.session.RedisSessionHandlerValve"/>
<ManagerclassName="com.radiadesign.catalina.session.RedisSessionManager"
host="193.160.31.24"
port="6379"
password="fnst1234"
maxInactiveInterval="3600"/>
</Context>
其中,host是redis数据库的IP地址,port是redis数据库的访问地址,password是访问密码,maxInactiveInterval是session的有效时间,3600即有效时间为一个小时。
session的确认与调试
3.1用IE的抓包工具找出sessionid(据说要IE11才有)
如下图所示,在调试工具里,监听网络,然后再详细信息的Cookie可以找到当前session值,然后到redis里确认下,是否存在这个key
session共享后,nginx原来的ip_hash的算法就可以去掉,改为weight的权重算法。
server193.160.31.22:8080 weight=3;
server193.160.31.23:8080 weight=2;
2.redis如何保证内存中的数据的安全性。
redis会定时将内存中的数据写入文件,以防丢失。
至少kill redis或者重启机器,都不会导致数据丢失。
突然断电的情形由于机房的电源够不着,只能作罢。
相关文章推荐
- 利用redis分布式锁的功能来实现定时器的分布式
- 利用redis的订阅和发布来实现实时监控的一个DEMO(Python版本)
- 利用redis-sentinel+consul实现redis高可用
- 利用redis和php-resque实现后台任务
- 利用redis实现分布式环境下的限频
- CentOS 6.2利用drbd+pacemaker实现redis高可用
- 后端利用Redis队列及哈希实现定时推送提醒的三个思路
- [Python3.4]通过Redis利用BloomFilter实现数据去重
- 利用Redis 实现消息队列
- 如何利用容器实现生产级别的redis sharding集群的一键交付
- Saltstack 利用pillar实现redis多实例部署
- java redis使用之利用jedis实现redis消息队列
- 利用redis replication实现redis服务器热迁移 推荐
- 利用redis-sentinel+keepalived实现redis高可用
- 利用redis实现tomcat session共享
- 利用redis的订阅和发布来实现实时监控的一个DEMO(Python版本)
- 利用redis实现带优先级的消息队列
- 利用Redis实现SQL伸缩的方法简介
- java redis使用之利用jedis实现redis消息队列
- 利用Redis和Jwt实现Token生成,存储,验证方法