Redis Session Manager for Tomcat 8
==================================
Tomcat 8 / Java 8 session manager to store sessions in Redis.
Goals
-----
* Ability to use different Java Redis clients (defaults to a Redisson) with client-specific serializers (default to standard java serialization)
* Session save configuration to allow persistence [after a request|when an attribute changes]
* Ignore certain requests (e.g. for static resources)
Usage
-----
* Copy `redis-session-manager-with-dependencies-VERSION.jar` to tomcat/lib
* Default configuration: (communicates with redis on localhost:6379)
```
<Manager className="com.crimsonhexagon.rsm.redisson.SingleServerSessionManager" />
```
* Full configuration (showing default values):
```
<Manager className="com.crimsonhexagon.rsm.redisson.SingleServerSessionManager"
endpoint="localhost:6379"
sessionKeyPrefix="_rsm_"
saveOnChange="false"
forceSaveAfterRequest="false"
dirtyOnMutation="false"
ignorePattern=".*\\.(ico|png|gif|jpg|jpeg|swf|css|js)$"
connectionPoolSize="100"
database="0"
password="<null>"
timeout="60000"
pingTimeout="1000"
retryAttempts="20"
retryInterval="1000"
/>
```
* _endpoint_: hostname:port of the redis server. Must be a primary endpoint (read/write) and not a read replicate (read-only).
* _sessionKeyPrefix_: prefix for redis keys. Useful for situations where 1 redis cluster serves multiple application clusters with potentially conflicting session IDs.
* _saveOnChange_: if _true_, the session will be persisted to redis immediately when any attribute is modified. When _false_, a modified session is persisted to redis when the request is complete.
* _forceSaveAfterRequest_: if _true_, the session will be persisted to redis when the request completes regardless of whether the session has detected a change to its state.
* _ignorePattern_: Java Pattern String to be matched against the request URI (_does not include the query string_). If matched, the request will not be processed by the redis session manager.
AWS ElastiCache usage
-----
Version 2.0.0 added additional support for ElastiCache Replication Groups. Applicable configuration:
```
<Manager className="com.crimsonhexagon.rsm.redisson.ElasticacheSessionManager"
nodes="node1.cache.amazonaws.com:6379 node2.cache.amazonaws.com:6379 ..."
nodePollInterval="1000"
sessionKeyPrefix="_rsm_"
saveOnChange="false"
forceSaveAfterRequest="false"
dirtyOnMutation="false"
ignorePattern=".*\\.(ico|png|gif|jpg|jpeg|swf|css|js)$"
masterConnectionPoolSize="100"
slaveConnectionPoolSize="100"
database="0"
password="<null>"
timeout="60000"
pingTimeout="1000"
retryAttempts="20"
retryInterval="1000"
/>
```
_nodes_ is a space-separated list of all nodes in the replication group. There is no default value; failure to specify this will result in a failure to start.
_nodePollInterval_ is the interval for polling each node in the group to determine if it is the master or a slave.
Notes on object mutation
-----
* TL;DR: avoid mutation of objects pulled from the session. If you must do this, read on.
* Changes made directly to an object in the session without mutating the session will not be persisted to redis. E.g. `session.getAttribute("anObject").setFoo("bar")` will not result in the session being marked dirty. _forceSaveAfterRequest_ can be used as a workaround, but this is inefficient. A dirty workaround would be to mark the session as dirty by `session.removeAttribute("nonExistentKey")`
* It is possible for an object to be mutated and `session.setAttribute("anObject")` invoked without the session being marked as dirty due to the session object and mutated object being references to the same actual object. _dirtyOnMutation_ will mark the session as dirty whenever `setAttribute()` is invoked. This is generally safe but is disabled by default to avoid unnecessary persists.
redis-session-manager-redis-session-manager-2.0.3.zip
需积分: 0 12 浏览量
更新于2024-06-02
收藏 27KB ZIP 举报
Redis Session Manager是一款基于Redis数据库实现的会话管理工具,它主要用在Web应用程序中,用于高效、安全地存储和管理用户的会话数据。这个压缩包文件"redis-session-manager-redis-session-manager-2.0.3.zip"包含了该工具的2.0.3版本,适用于Windows操作系统。下面将详细介绍Redis、Redis Session Manager以及其在Windows环境中的应用。
**Redis**
Redis(Remote Dictionary Server)是一个开源的,支持网络的,内存在内的数据结构存储系统。它可以用作数据库、缓存和消息代理。Redis以其出色的速度和丰富的数据结构而闻名,如字符串、哈希、列表、集合、有序集合等,这使得它在处理大量实时数据时表现优异。此外,Redis支持发布/订阅模式,可以进行消息传递。
**Redis Session Manager**
Redis Session Manager是为了解决Web应用中会话管理的问题而设计的。在传统的Web应用程序中,会话通常存储在服务器端的内存中或通过HTTP cookie在客户端存储。这些方法可能会导致内存资源消耗过大或者安全性问题。Redis Session Manager利用Redis作为后端存储,将用户的会话数据持久化在Redis数据库中。这样不仅可以减轻服务器内存压力,还可以实现跨服务器的会话共享,提高应用的可扩展性。
**在Windows上的安装与配置**
在Windows环境下安装Redis Session Manager,首先需要安装Redis服务器。你可以从Redis官方网站下载适用于Windows的二进制版本,然后解压并运行`redis-server.exe`启动服务。接着,你需要配置你的Web应用程序(例如Spring Boot、Node.js、ASP.NET等)以使用Redis Session Manager。这通常涉及到以下步骤:
1. 添加Redis客户端库到项目中,如Java的Jedis或C#的StackExchange.Redis。
2. 配置应用的session存储,指定Redis服务器的地址、端口以及可能的密码。
3. 如果需要,设置过期策略、会话序列化方式等高级选项。
**使用与优点**
使用Redis Session Manager有以下几点优势:
1. **高可用性**:Redis支持主从复制和哨兵(Sentinel)集群,确保会话数据的可靠性。
2. **高性能**:Redis的数据操作在内存中完成,提供极快的读写速度。
3. **可扩展性**:通过Redis集群,可以轻松扩展以应对高并发场景。
4. **跨服务器会话共享**:对于分布式应用,可以在多个服务器之间共享会话,提升用户体验。
5. **持久化**:Redis支持多种持久化策略,保证数据不丢失。
"redis-session-manager-redis-session-manager-2.0.3.zip"提供的工具是Web开发者在Windows环境中实现高效、可靠的会话管理的一个强大选择。正确配置和使用Redis Session Manager,能够优化应用性能,提高用户体验,并降低运维成本。
段子手-168
- 粉丝: 4809
- 资源: 2745
最新资源
- 毕设和企业适用springboot人工智能客服系统类及文化旅游信息平台源码+论文+视频.zip
- 毕设和企业适用springboot企业协作平台类及数字货币管理平台源码+论文+视频.zip
- 毕设和企业适用springboot区域电商平台类及企业创新研发平台源码+论文+视频.zip
- 毕设和企业适用springboot区域电商平台类及企业供应链平台源码+论文+视频.zip
- 毕设和企业适用springboot区域电商平台类及企业级API管理平台源码+论文+视频.zip
- 毕设和企业适用springboot人工智能客服系统类及线上文件管理系统源码+论文+视频.zip
- 毕设和企业适用springboot人工智能客服系统类及虚拟银行平台源码+论文+视频.zip
- 毕设和企业适用springboot人工智能客服系统类及物流管理平台源码+论文+视频.zip
- 毕设和企业适用springboot区域电商平台类及汽车信息管理平台源码+论文+视频.zip
- 毕设和企业适用springboot区域电商平台类及区块链平台源码+论文+视频.zip
- 毕设和企业适用springboot区域电商平台类及全流程管理平台源码+论文+视频.zip
- 毕设和企业适用springboot人工智能客服系统类及智能城市数据管理平台源码+论文+视频.zip
- 毕设和企业适用springboot人工智能客服系统类及用户行为分析平台源码+论文+视频.zip
- 毕设和企业适用springboot人工智能客服系统类及智能配送系统源码+论文+视频.zip
- 毕设和企业适用springboot区域电商平台类及实时通信平台源码+论文+视频.zip
- 毕设和企业适用springboot区域电商平台类及全渠道电商平台源码+论文+视频.zip