内存存储
该 MemoryStore 是一个内存实现的 Store 接口,提供基于线程安全的每会话键值存储 ConcurrentHashMap。
它轻量、快速,适用于 单节点部署、开发环境以及会话数据 不 需要在多个服务器实例之间共享的场景。
关键特性
本地每会话存储 — 每个连接获得其自己的存储实例
线程安全访问 — 使用以下方式支持并发读/写
ConcurrentHashMap短暂数据 — 值仅存在于 JVM 内存中,重启或故障时会丢失
无跨节点共享 — 数据不会在服务器之间分发
零外部依赖 — 尽可能最简单的
Store实现
工作原理
set(key, value)在与会话关联的内存中存储一个值get(key)检索存储的值,或null如果不存在则返回has(key)在不读取值的情况下检查键是否存在del(key)移除单个条目destroy()清除所有条目,通常在客户端断开连接时调用
优点
👍 快速、低延迟访问
👍 无需外部服务
👍 适合开发和本地测试
👍 与以下的 任何 EventStore 结合用于混合部署
(例如, MemoryStore + KafkaEventStore 或 MemoryStore + RedisStreamEventStore)
限制
ℹ️ 非分布式 — 值不会在各节点间同步
ℹ️ 非持久化 — 数据在服务器重启或崩溃时消失
ℹ️ 不适合水平扩展,除非与分布式的 StoreFactory 实现
总结
MemoryStore 提供本地的、短暂的每会话数据存储,适用于单节点部署和开发场景。 当需要事件分发但不需要分布式存储时,可与任何分布式 EventStore 结合使用。
最后更新于
这有帮助吗?