带有Spring Boot的Redis缓存Docker容器在我的本地计算机上不起作用

时间:2018-08-27 14:19:40

标签: spring docker spring-boot redis

我正在将本地计算机上的redis缓存用作docker映像。我已使用可缓存的对硫磷为我的一种方法启用了缓存。当我在AWS上使用它而不是本地主机时,应用程序无法缓存相同的内容

public class RedisConfig {

    @Autowired
    private JedisConnectionFactory jedisConnectionFactory;

    @Bean
    public RedisTemplate<Object, Object> redisTemplate() {

        System.out.println("localhost")
        System.out.println("6379");
        jedisConnectionFactory.getHostName();
        jedisConnectionFactory.getPort();

        RedisTemplate<Object, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(jedisConnectionFactory);
        template.setValueSerializer(new GenericToStringSerializer<Object>(Object.class));
        return template;
    }

    @Bean
    public CacheManager cacheManager(RedisTemplate redisTemplate) {
        RedisCacheManager cacheManager = new RedisCacheManager(redisTemplate);
        // Number of seconds before expiration. Defaults to unlimited (0)
        cacheManager.setDefaultExpiration(60);
        cacheManager.setUsePrefix(true);
        return cacheManager;
    }

}
@Cacheable(value="sgcode" , cacheManager ="cacheManager")
    public String getSegmentCode(String aname ) {
        Logger.info("code ", "##### SEGMENT METHOD CALLED ##### {}", aname);
        return segmentCodeMap.get(aname);       
    }

Logger line will be printed only once after that it should fetch from cache.

1 个答案:

答案 0 :(得分:0)

最后,经过大量的努力,找到了根本原因。在应用程序类中使用enablecaching注释