3.6. 近缓存


接近缓存对 Hot Rod 客户端是本地的,并存储最近使用的数据,因此每个读取操作不需要遍历网络,这会显著提高性能。

接近缓存:

  • 使用 read 操作填充,对 get()getVersioned() 方法的调用。
    在以下示例中,put() 调用不会填充接近缓存,并且只对条目无效(如果已存在)无效:

    cache.put("k1", "v1");
    cache.get("k1");
    Copy to Clipboard Toggle word wrap
  • 在 Data Grid Server 上的远程缓存中更新或删除条目时,将客户端监听程序注册为无效条目。
    如果条目无效后请求,客户端必须再次从远程缓存中检索这些条目。
  • 当客户端切换到不同的服务器时,将被清除。

接近缓存的绑定

您应该始终通过指定可以包含的最大条目数来使用绑定近缓存。当接近缓存达到最大条目数时,驱除会自动发生以删除旧条目。这意味着您不需要手动将缓存大小放在客户端 JVM 的边界内。

重要

不要将最大空闲过期用于接近缓存,因为 near-cache 读取不会传播上次访问时间的条目。

Bloom 过滤器

Bloom 过滤器通过减少失效消息总数来优化写入操作的性能。

Bloom 过滤器:

  • 驻留在 Data Grid Server 上,并跟踪客户端所请求的条目。
  • 需要每个服务器具有最多活跃连接的连接的连接,并使用 WAIT 耗尽的操作。
  • 无法用于未绑定近的缓存。

3.6.1. 配置 Near Cache

使用近缓存配置 Hot Rod Java 客户端,将最近使用的数据存储在客户端 JVM 中。

流程

  1. 打开您的 Hot Rod Java 客户端配置。
  2. 配置每个缓存,以使用 nearCacheMode(NearCacheMode.INVALIDATED) 方法执行近缓存。

    注意

    数据网格提供全局近缓存配置属性。但是,这些属性已弃用,您不应该使用它们,而是根据缓存配置近缓存。

  3. 指定使用 nearCacheMaxEntries() 方法驱除前近缓存可以容纳的最大条目数。
  4. 使用 nearCacheUseBloomFilter() 方法启用用于接近缓存的 bloom 过滤器。
import org.infinispan.client.hotrod.configuration.ConfigurationBuilder;
import org.infinispan.client.hotrod.configuration.NearCacheMode;
import org.infinispan.client.hotrod.configuration.ExhaustedAction;

ConfigurationBuilder builder = new ConfigurationBuilder();
builder.addServer()
    .host("127.0.0.1")
    .port(ConfigurationProperties.DEFAULT_HOTROD_PORT)
  .security().authentication()
    .username("username")
    .password("password")
    .realm("default")
    .saslMechanism("SCRAM-SHA-512")
  // Configure the connection pool for bloom filters.
  .connectionPool()
    .maxActive(1)
    .exhaustedAction(ExhaustedAction.WAIT);
// Configure near caching for specific caches
builder.remoteCache("books")
    .nearCacheMode(NearCacheMode.INVALIDATED)
    .nearCacheMaxEntries(100)
    .nearCacheUseBloomFilter(false);
builder.remoteCache("authors")
    .nearCacheMode(NearCacheMode.INVALIDATED)
    .nearCacheMaxEntries(200)
    .nearCacheUseBloomFilter(true);
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat