当前位置: 首页 > 知识库问答 >
问题:

Hazelcast,MongoDB Perstance

邴景山
2023-03-14

我目前正在使用Hazelcast社区版作为用于web应用程序的缓存机制,因此它需要快速。

目前,我们在那里存储了很多数据,而且增长得更快。由于它是内存数据库,RAM很昂贵。所以想知道最佳实践是什么。我计划只在缓存中存储少量数据,其余的存储在MongoDB中。我希望Hazelcast持久化,只有在找不到数据的情况下才从MongoDB获取数据。

我已经创建了mapstore,但我不知道如何让它在MongoDB中“查找”缓存中找不到的数据。如果这个结果为空,那么从MapStore加载(“”)是否就是简单的情况?

谢谢

共有1个答案

叶阳
2023-03-14

在渴望模式下,它将加载map init上的所有条目(在hz.getMap()上也是如此),在惰性模式下,它将在第一次接触分区时加载分区。

此外,如果你做地图。get()并且IMap中没有值,它将尝试使用MapLoader从MapLoader加载该值。加载(键)方法。

此外,如果您执行map.put()并且IMap中没有值,它将执行MapLoader.load(key),因为put方法应该返回以前的值。如果您想避免它,请使用map.set()。

如果您看一下与MapStore/MapLoader相关的手册部分也会很好。它应该描述所有细微的区别。

 类似资料:
  • 我在我的应用程序中使用Hazelcast IMDG。 我听说Hazelcast Jet比Hazelcast IMDG提供更快的数据处理。 Hazelcast Jet提供了所有可用的功能Hazelcast IMDG?

  • Hazelcast 是一个分布式内存数据存储和计算平台,具有容错性且易于扩展或缩减。 作为内存数据存储,Hazelcast 通过将数据存储在内存中,让您可以更快地访问数据。有了更多可访问的数据,您可以利用 Hazelcast 以始终​​如一的低延迟处理大量实时事件或静态数据集。 为了帮助你利用所有这些功能,Hazelcast 带有以下内置数据结构: 分布式、分区和可查询的内存键值存储实现,称为 I

  • 使用hazelcast 3.8中的ScheduledExecutorService,我遇到了内存不足异常。问题是我正在做一项服务,它应该提醒用户一天中的一些事件。任务的执行应该是容错的。用户设置新的提醒,这是ScheduledExecutorService的一项任务,因此每天的任务量可以达到数千。每个任务都使用schedule(可运行命令、长延迟、时间单位)作为一次性操作添加到scheduler中

  • 我使用的是Hazelcast版本3.3.1。 我有一个使用C3.2xLarge服务器在aws上运行的9节点群集。 我使用的是分布式执行器服务和分布式映射。 分布式执行器服务使用一个线程。Distributed map配置为无复制和无近缓存,并使用Kryo序列化器存储大约100万个1-2KB大小的对象。 我的用例如下: 所有9个节点都在分布式执行器服务上持续执行同步远程操作,每秒生成大约20k次命中

  • 如果Hazelcast位于类路径上并找到合适的配置,则Spring Boot会自动配置您可以在应用程序中注入的HazelcastInstance。 如果定义com.hazelcast.config.Config bean,Spring Boot会使用它。 如果您的配置定义了实例名称,Spring Boot会尝试查找现有实例,而不是创建新实例。 您还可以指定要通过配置使用的hazelcast.xml

  • 翻译:Ranger Tsao,校对 宋子豪、赵亮 HazelcastClusterManager 是基于 Hazelcast 实现 ,是Vert.x 中集群管理器中的默认实现。由于 Vert.x 集群管理的可插拔性,也可轻易切换至其它的集群管理器。 Maven(pom.xml) <dependency> <groupId>io.vertx</groupId> <artifactId>ver

  • Hazelcast Jet 是一个分布式计算平台,专为高性能流处理和快速批处理而构建。它在内存数据网格(IMDG)中嵌入Hazelcast,以提供轻量级的处理器包和可扩展的内存存储。 特性: 低延迟和分布式的通用数据处理框架,具有高吞吐量 高并行和分布式的数据流和批处理 分布式  java.util.stream API 支持 Hazelcast 数据结构,如 IMap 和 IList 连接器允许

  • 我试图用Hazelcast Jet作为一个处理管道来获得更多的速度,并开始更多地挖掘源代码文档 我是不是误会什么了?