rRedis 存储

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 节点之间可见且持久化。 当需要共享会话状态的集群部署时,这是理想选择。

最后更新于

这有帮助吗?