1.3. 缓存模式
数据网格缓存管理器可以创建和控制使用多个使用不同模式的缓存。例如,您可以使用相同的缓存管理器进行本地缓存、分布式缓存以及带有 invalidation 模式的缓存。
- Local
- 数据网格作为单一节点运行,永远不会在缓存条目上复制读取或写入操作。
- 复制
- 数据网格在集群中的所有节点上复制所有缓存条目,仅执行本地读取操作。
- 分布式
-
数据网格在集群中的节点子集上复制缓存条目,并为固定的所有者节点分配条目。
数据网格请求从所有者节点读取操作以确保其返回正确的值。 - 失效
- 每当操作修改缓存中的条目时,Data Grid 会从所有节点驱除过时的数据。数据网格仅执行本地读取操作。
- 分散
-
数据网格在节点子集中存储缓存条目。
默认情况下,数据网格为分散缓存中的每个缓存条目分配一个主要所有者和备份所有者。
数据网格通过与分布式缓存相同的方法分配主要所有者,而备份所有者始终为启动写入操作的节点。
数据网格请求至少从一个所有者节点读取操作,以确保返回正确的值。
1.3.1. 缓存模式的比较
您选择的缓存模式取决于数据的质量和保证。
下表总结了缓存模式之间的主要区别:
缓存模式 | 集群? | 读取性能 | 写入性能 | 容量 | 可用性 | 功能 |
---|---|---|---|---|---|---|
Local | 否 | 高 (本地) | 高 (本地) | 单一节点 | 单一节点 | complete |
Simple(简单) | 否 | 最高 (本地) | 最高 (本地) | 单一节点 | 单一节点 | 部分: 无事务、持久性或索引。 |
失效 | 是 | 高 (本地) | 低 (所有节点,无数据) | 单一节点 | 单一节点 | partial: 不索引。 |
复制 | 是 | 高 (本地) | 最低 (所有节点) | 最小的节点 | 所有节点 | complete |
分布式 | 是 | 中 (所有者) | 中 (所有者节点) | 所有节点容量的总和除以所有者数。 | 所有者节点 | complete |
分散 | 是 | 中 (主要) | 更高的 (单一 RPC) | 所有节点容量的总和除以 2 分。 | 所有者节点 | 部分: 无事务. |