基于redis 的tomcat session 同步

简介: 这里我把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共享

目录
相关文章
|
12月前
|
存储 NoSQL 前端开发
Redis专题-实战篇一-基于Session和Redis实现登录业务
本项目基于SpringBoot实现黑马点评系统,涵盖Session与Redis两种登录方案。通过验证码登录、用户信息存储、拦截器校验等流程,解决集群环境下Session不共享问题,采用Redis替代Session实现数据共享与自动续期,提升系统可扩展性与安全性。
643 3
Redis专题-实战篇一-基于Session和Redis实现登录业务
|
11月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
1021 6
|
canal 缓存 NoSQL
Redis缓存与数据库如何保证一致性?同步删除+延时双删+异步监听+多重保障方案
根据对一致性的要求程度,提出多种解决方案:同步删除、同步删除+可靠消息、延时双删、异步监听+可靠消息、多重保障方案
Redis缓存与数据库如何保证一致性?同步删除+延时双删+异步监听+多重保障方案
|
NoSQL 数据库 Redis
什么是 Redis 主从同步?
Redis 的主从同步(replication)机制,允许 Slave 从 Master 那里,通过网络传输拷贝到完整的数据备份,从而达到主从机制。 主数据库可以进行读写操作,当发生写操作的时候自动将数据同步到从数据库,而从数据库一般是只读的,并接收主数据库同步过来的数据。一个主数据库可以有多个从数据库,而一个从数据库只能有一个主数据库。 主从数据同步主要分二个阶段 : 第一阶段 : 全量复制阶段 ● slave节点请求增量同步 ● master节点判断replid,发现不一致,拒绝增量同步 ● master将完整内存数据生成RDB,发送RDB到slave ● slave清空本地数据,加载m
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
1086 26
|
关系型数据库 MySQL 应用服务中间件
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
617 7
|
监控 NoSQL 容灾
# Redis主从同步技术分享
Redis作为一个高性能的内存数据库,其主从同步机制是分布式环境下保证数据一致性的重要手段。本文将详细介绍Redis主从同步的实现方法,包括全量同步和增量同步,以及如何配置和监控主从同步状态。
|
NoSQL 关系型数据库 MySQL
Tomcat、MySQL、Redis最大支持说明
综上所述,Tomcat、MySQL、Redis的并发处理能力均非固定值,而是通过合理的配置与优化策略,结合系统硬件资源,共同决定了它们在实际应用中的表现。开发者应根据应用的具体需求和资源条件,对这些组件进行细致的调优,以达到最佳性能表现。
367 1
|
NoSQL 安全 容灾
阿里云DTS踩坑经验分享系列|Redis迁移、同步
阿里云数据传输服务DTS在帮助用户迁移Redis数据、同步数据时,在某些复杂场景下会出现报错,或者源库与目标库数据不一致的问题,给用户带来困扰。本文介绍了DTS Redis到Redis迁移、同步过程中的典型问题,以帮助用户更好地使用DTS。
2020 2
|
NoSQL Redis API
限流+共享session redis实现
【10月更文挑战第7天】
299 0