基于redis 的tomcat session 同步

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 这里我把Redis放在/XX/下,所以在该目录下执行下列命令: $ wget http://download.redis.io/releases/redis-3.2.1.tar.gz$ tar xzf redis-3.2.1.tar.gz$ cd redis-3.2.1$ make

这里我把Redis放在/XX/下,所以在该目录下执行下列命令:



$ wget http://download.redis.io/releases/redis-3.2.1.tar.gz


$ tar xzf redis-3.2.1.tar.gz


$ cd redis-3.2.1


$ make



启动


[root@localhost redis-3.2.1]# ./src/redis-server ../redis.conf



启动报错



解决方法


将redis配置文件拷贝到/etc/redis/${REDISPORT}.conf



# mkdir /etc/redis




# cp /sxcoo/redis-2.8.21/redis.conf  /etc/redis/6379.conf





启动


[root@localhost redis-3.2.1]# ./src/redis-server  /etc/6379.conf





在我window环境 原创链接测试


可以正常链接


但是存值出错






经查阅资料


在redis3.2之后,redis增加了protected-mode,在这个模式下,即使注释掉了bind 127.0.0.1,再访问redisd时候还是报错。



解决方法 修改redis.conf


protected-mode no





以上redis已经装好了,


现在要做的是将tomcat的session 用redis来管理




详细配置地址:https://github.com/izerui/tomcat-redis-session-manager


本来很简单


1、在tomcat/lib下面添加


commons-pool2-2.2.jar


jedis-2.5.2.jar


tomcat-redis-session-manager-2.0.0.jar


2、修改conf/context.xml,添加


<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />


   <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"


    host="localhost"


    port="6379"


    database="10"


    maxInactiveInterval="60"/>


3、启动tomcat。。但是就是不行



一脸懵逼


查看日志没有发现redis相关的异常



最后仔细阅读启动tomcat服务的日志发现了一个


No rules found matching 'Context/Value'.


这个异常是context配置文件的问题。



阅读下载的tomcat-redis-session-manager源码发现源码(tomcat-redis-session-manager)依赖了tomcat其他的包:tomcat-juli.jar而tomcat默认是没有这些包的,从下载tomcat-juli-adapters.jar和tomcat-juli.jar两个包,放在apache-tomcat-7.0.57\lib目录下,同时将tomcat-juli.jar放在apache-tomcat-7.0.57\bin目录下同时将编译tomcat-redis-session-manager的源码,通过相应的依赖包common-pool2.2,jedis以及tomcat-juli.jar编译,


并打成自己的jar包,上传然后将这个依赖包放在apache-tomcat-7.0.57\lib目录下,删除网上下载的tomcat-redis-session-manager-1.2-tomcat-7.jar.



经测试 成功




接下来测试tomcat集群负载均衡和session共享



经测试 成功


接下来测试tomcat集群负载均衡和session共享

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
3月前
|
NoSQL Redis 数据库
数据传输DTS中金融云跨账号同步Redis,增量校验报错了
【1月更文挑战第16天】【1月更文挑战第80篇】数据传输DTS中金融云跨账号同步Redis,增量校验报错了
65 1
|
5月前
|
缓存 NoSQL fastjson
Shiro Session集群共享存入Redis中SimpleSession的transient 属性不能序列化
Shiro Session集群共享存入Redis中SimpleSession的transient 属性不能序列化
|
1月前
|
NoSQL Redis
[Redis]——主从同步原理(全量同步、增量同步)
[Redis]——主从同步原理(全量同步、增量同步)
|
5月前
|
NoSQL Redis
shiro的session信息放redis反序列化异常解决
shiro的session信息放redis反序列化异常解决
|
1月前
|
存储 NoSQL 前端开发
【SpringBoot】Redis集中管理Session和自定义用户参数解决登录状态及校验问题
【SpringBoot】Redis集中管理Session和自定义用户参数解决登录状态及校验问题
|
1月前
|
缓存 NoSQL 安全
【Redis】2、Redis应用之【根据 Session 和 Redis 进行登录校验和发送短信验证码】
【Redis】2、Redis应用之【根据 Session 和 Redis 进行登录校验和发送短信验证码】
51 0
|
3月前
|
存储 NoSQL 关系型数据库
Redis协议与异步方式(redis网络层、pipeline、事务、lua脚本、ACID特性、发布订阅、hiredis实现同步连接与异步连接)
Redis协议与异步方式(redis网络层、pipeline、事务、lua脚本、ACID特性、发布订阅、hiredis实现同步连接与异步连接)
73 0
|
9月前
|
存储 缓存 NoSQL
案例01-修改数据redis没有同步更新
修改数据redis没有同步更新
|
4月前
|
NoSQL 前端开发 中间件
黑马点评回顾 redis实现共享session
黑马点评回顾 redis实现共享session
34 0
|
5月前
|
应用服务中间件 容器
Tomcat的Session过期处理策略
Tomcat的Session过期处理策略
57 0

热门文章

最新文章