Redis 存储
该 RedisStore 是一个基于 Redis 的实现,提供 存储 接口,提供 每会话的、分布式的键值存储 使用 Redisson 的 RMap。
每个连接的客户端都会收到一个由其标识的专用 Redis 映射 sessionId,允许在集群环境中的多个节点之间一致地访问会话数据。
关键特性
分布式的每会话存储 — 会话数据存储在 Redis 中,而不是本地内存
跨节点可见性 — 值可被共享相同 Redis 实例的所有服务器访问
由后端配置决定的持久性 — 只要 Redis 在运行,数据即可在 JVM/节点重启后存活
每会话专用的键空间 — 每个会话都会创建自己的
RMap,使用会话标识符可插拔到任何 EventStore — 可与 Kafka、Redis Streams、Hazelcast、NATS 等配对
工作原理
set(key, value)将一个值写入该会话的 Redis 映射get(key)从 Redis 检索该值has(key)检查分布式映射中键的存在性del(key)从映射中移除单个键destroy()删除整个会话映射,通常在客户端断开连接时执行
优点
👍 会话数据对所有节点可用 — 支持横向扩展 👍 只要 Redis 在运行即可在服务器重启后存活 👍 自然契合分布式事件传播的方案 👍 允许与任何 EventStore 后端混合存储 (例如, RedisStore + KafkaEventStore, RedisStore + HazelcastRingBufferEventStore)
总结
RedisStore 提供由 Redis 支持的分布式每会话存储, 使会话数据在多个 socketio4j 节点之间可见且持久化。 当需要共享会话状态的集群部署时,这是理想选择。
最后更新于
这有帮助吗?