2.2.4. 级别一(L1)缓存

当数据节点从集群中的另一节点检索条目时,Data Grid 节点会创建本地副本。L1 缓存避免重复在主所有者节点上查找条目并添加性能。

下图演示了 L1 缓存如何工作:

图 2.4. L1 缓存

l1 cache rhdg

在 "L1 缓存" 图表中:

  1. 客户端调用 cache.get () 来读取集群中另一节点是主所有者的条目。
  2. originator 节点将读取操作转发到主所有者。
  3. 主所有者返回 key/value 条目。
  4. 原始器节点创建本地副本。
  5. 后续的 cache.get () 调用会返回本地条目,而不转发到主所有者。
L1 缓存性能

启用 L1 提高了读取操作的性能,但需要主所有者节点在修改条目时广播无效的消息。这样可确保数据网格在集群中删除任何日期副本。然而,这也降低了写操作的性能并增加内存用量,从而减少缓存的整体容量。

注意

与任何其他缓存条目一样,数据网格驱除并过期本地副本或 L1 条目。

L1 缓存配置

XML

<distributed-cache l1-lifespan="5000"
                   l1-cleanup-interval="60000">
</distributed-cache>

JSON

{
  "distributed-cache": {
    "l1-lifespan": "5000",
    "l1-cleanup-interval": "60000"
  }
}

YAML

distributedCache:
  l1Lifespan: "5000"
  l1-cleanup-interval: "60000"

ConfigurationBuilder

ConfigurationBuilder builder = new ConfigurationBuilder();
builder.clustering().cacheMode(CacheMode.DIST_SYNC)
         .l1()
         .lifespan(5000, TimeUnit.MILLISECONDS)
         .cleanupTaskFrequency(60000, TimeUnit.MILLISECONDS);