Возможно и правильно ли использовать один и тот же кэш Redis для хранения разных типов объектов? Я знаю, что он поддерживает несколько DS. В моем сценарии этот объект будет определенным пользователем объектом. Кроме того, будут 2 разных метода, которые будут заполнять один и тот же кэш Redis разными типами ключей, например один заполняет CustomerInfo
против customerId
, а другой - заполнять кэш AccountInfo
против AccountId
.
* 1006. * CacheConfig.class:
@Configuration
public class CacheConfig extends AbstractCloudConfig {
@Autowired
Environment env;
@Bean
public RedisConnectionFactory brRedisFactory() {
return connectionFactory().redisConnectionFactory(env.getProperty("redis-cache"));
}
@Bean
public RedisTemplate<String, Object> brRedisTemplate() {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>();
redisTemplate.setConnectionFactory(brRedisFactory());
return redisTemplate;
}
@Bean(name = "myCacheMngr")
public CacheManager cacheManager() {
RedisCacheManager cacheManager = new RedisCacheManager(brRedisTemplate());
cacheManager.setUsePrefix(true);
cacheManager.setTransactionAware(true);
return cacheManager;
}
}
Метод заполнения данных клиента в Redis Cache. Будет аналогичный метод для заполнения кэша Redis данными учетной записи для ключа «accountId».
@Cacheable(value="redis-cache",key ="#customerId")
public FinancialPlanningDTO retriveCustomerdetails( String customerId, String modelId, String requestId) throws COException {
CustomerInfo csDTO;
try {
csDTO = csDTOAdapterImpl.
getCustomerDetails(customerId);
} catch (Exception e) {
e.printStackTrace();
}
return financialPlanningDTO;
}