2.11. 配置 Near 缓存
热 Rod Java 客户端可以保留存储最近使用的数据的本地缓存,这显著提高 get () 和 getVersioned () 操作的性能,因为数据对客户端是本地的。
当您使用 Hot Rod Java 客户端启用接近缓存时,对 get () 或 getVersioned () 调用的调用会在从服务器检索条目时填充最接近的缓存。当在服务器端更新或删除条目时,接近缓存中的条目将无效。如果在密钥无效后请求密钥,客户端必须再次从服务器获取密钥。
您还可以配置接近缓存可能包含的条目数。当达到最大值时,near-cached 条目将被驱除。
接近缓存注意事项
不要将最大闲置过期时间与接近缓存一起使用,因为 near-cache 读取不会传播条目的最后一次访问时间。
- 当使用集群缓存模式时,客户端故障转移到不同的服务器时会清除接近缓存。
- 您应该始终配置可以驻留在最接近的缓存中的最大条目数。unbounded 接近缓存要求您在客户端 JVM 的界限内保持接近缓存的大小。
- 接近缓存无效消息可能会降低写入操作的性能
流程
-
在客户端配置中,将您想要的缓存模式设置为
INVALIDATED - 通过指定条目的最大数量来定义最接近的缓存的大小。
import org.infinispan.client.hotrod.configuration.ConfigurationBuilder;
import org.infinispan.client.hotrod.configuration.NearCacheMode;
...
// Configure different near cache settings for specific caches
ConfigurationBuilder builder = new ConfigurationBuilder();
builder
.remoteCache("bounded")
.nearCacheMode(NearCacheMode.INVALIDATED)
.nearCacheMaxEntries(100);
.remoteCache("unbounded").nearCache()
.nearCacheMode(NearCacheMode.INVALIDATED)
.nearCacheMaxEntries(-1);
注意
您应该始终基于每个缓存配置接近缓存。虽然 Data Grid 提供全局近的缓存配置属性,但不应使用它们。