【发布时间】:2019-04-18 13:06:53
【问题描述】:
我想缓存用户数据及其帐户数据。两者的关键是用户 ID。
我想知道如何使用一个 Hazelcast 配置实现跨用户数据和帐户数据的缓存?或者
我应该使用两个单独的 Hazelcast 实例
config.addMapConfig(
new MapConfig()
.setName("CS_DATA")
.setMaxSizeConfig(new
MaxSizeConfig(Integer.parseInt(cacheSize),
MaxSizeConfig.MaxSizePolicy.valueOf(cachePolicy)))
.setEvictionPolicy(EvictionPolicy.LRU)
.setTimeToLiveSeconds(Integer.parseInt(cacheTTL)));
return config;
}
=============
@Cacheable(value = "CS_DATA", key = "#userName" , condition = "#root.target.isAccountCacheRequired()")
public Object getAccounts(String userName) {
log.info("Cache miss for Accounts data.....Calling otlClient ...." );
=============
@Cacheable(value =CS_DATA, key = "#userName", condition = "#root.target.isUserCacheRequired()")
public User getUser(String userName) {
log.info("Cache miss for UserData.....Calling otlClient ...." );
}
====== 我面临的当前问题是,它会覆盖数据,因为密钥在用户和帐户之间是相同的。这里的任何帮助都会很棒
【问题讨论】: