Java 如何从EhCache获取初始数据快照

Java 如何从EhCache获取初始数据快照,java,caching,ehcache,Java,Caching,Ehcache,我有以下设置: 实时\u数据\u源-->EhCache\u实例-->web\u服务器-->websocket\u客户端 每次用户连接时,我都将CacheEventListener注册到缓存中。因此,在新数据到达时,会相应地处理更新。但是,如果用户在一天当中连接,我希望他首先接收初始数据快照,然后更新。您能建议我如何配置CacheEventListener以支持初始数据映像吗 我使用ResourcePoolsBuilder设置缓存以存储数千个条目。从问题的扩展描述来看,我认为Ehcache不是您应

我有以下设置:

实时\u数据\u源-->EhCache\u实例-->web\u服务器-->websocket\u客户端

每次用户连接时,我都将CacheEventListener注册到缓存中。因此,在新数据到达时,会相应地处理更新。但是,如果用户在一天当中连接,我希望他首先接收初始数据快照,然后更新。您能建议我如何配置CacheEventListener以支持初始数据映像吗


我使用ResourcePoolsBuilder设置缓存以存储数千个条目。

从问题的扩展描述来看,我认为Ehcache不是您应该使用的

ResourcePoolsBuilder
的使用情况来看,我假设您使用的是3.x版。作为提醒,允许缓存在任何时间点删除数据。因此,虽然您可能会看到所有数据到达,但无法保证完整的快照,因为缓存可能已逐出内容


除了在缓存上进行迭代(非常不鼓励),不支持获取所有数据的快照。更重要的是,对于offheap和disk这样的层,缓存可能包含在给定时间甚至不适合堆的数据集。

从问题的扩展描述来看,我认为Ehcache不是您应该使用的

ResourcePoolsBuilder
的使用情况来看,我假设您使用的是3.x版。作为提醒,允许缓存在任何时间点删除数据。因此,虽然您可能会看到所有数据到达,但无法保证完整的快照,因为缓存可能已逐出内容


除了在缓存上进行迭代(非常不鼓励),不支持获取所有数据的快照。更重要的是,对于堆外和磁盘这样的层,缓存可能包含一个在给定时间甚至不适合堆的数据集。

您能更详细地描述一下您的用例吗?缓存的内容是什么?目前,您似乎更多地将缓存用作事件源,这可能并不理想。我的缓存包含历史数据,例如昨天的数据,并不断填充新的数据元组。数据本身对应于文本和数字的元组。因为它是连续填充的,所以每个客户机都希望除了历史数据之外,还看到这些流数据。因此,我需要缓存处理程序对添加到缓存中的新元组做出反应(EhCache拥有它),并且能够获取所有现有记录以获取完整的历史数据集。这有意义吗?你能再描述一下你的用例吗?缓存的内容是什么?目前,您似乎更多地将缓存用作事件源,这可能并不理想。我的缓存包含历史数据,例如昨天的数据,并不断填充新的数据元组。数据本身对应于文本和数字的元组。因为它是连续填充的,所以每个客户机都希望除了历史数据之外,还看到这些流数据。因此,我需要缓存处理程序对添加到缓存中的新元组做出反应(EhCache拥有它),并且能够获取所有现有记录以获取完整的历史数据集。这有意义吗?谢谢@LouisJacomet。我可以用开源技术代替EhCache吗?我想Hazelcast与EhCache类似,也不适合?谢谢@LouisJacomet。我可以用开源技术代替EhCache吗?我想Hazelcast与EhCache类似,也不适合?