【发布时间】:2022-01-24 12:49:14
【问题描述】:
@Bean
public Config cacheConfig() {
Map<String, MapConfig> mapConfigs = new HashMap<>();
EvictionConfig evictionConfig = new EvictionConfig();
evictionConfig.setEvictionPolicy(EvictionPolicy.LFU);
evictionConfig.setSize(10);
MapConfig widgetMapConfig = new MapConfig();
widgetMapConfig.setBackupCount(1);
widgetMapConfig.setName("widget");
widgetMapConfig.setMaxIdleSeconds(60);
widgetMapConfig.setTimeToLiveSeconds(60);
widgetMapConfig.setInMemoryFormat(InMemoryFormat.BINARY);
widgetMapConfig.setEvictionConfig(evictionConfig);
mapConfigs.put("widget-Map", widgetMapConfig);
Config programmaticConfig = new Config();
programmaticConfig.setMapConfigs(mapConfigs);
return programmaticConfig;
}
以上是配置,缓存在 60 秒内未使用时不会被驱逐。有人可以帮我解决这个问题。我想基于 TTL 配置驱逐
【问题讨论】:
-
如果您使用的是 3.11+,您可能希望使用 CacheConfig 而不是 MapConfig。我遇到了类似的问题,MapConfig 并没有真正为我创建缓存。
-
嗨 Avinash R,我使用 4.0+ 我可以在方法调用期间使用 MapConfig 缓存数据和驱逐数据,但是当缓存基于最大空闲时间和生存时间配置过期时,它应该自动被驱逐,这没有发生。
标签: spring-boot caching hazelcast hazelcast-imap