Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Não é possível obter conexão Jedis; Não foi possível obter um recurso do pool


1. Tente usar o pool de conexão Jedis para obter a instância Jedis em vez de usar new Jedis() , para isso você terá que configurar o JedisPool em configJá que você o está usando como bean, você deve usar o JedisPool bean e então obter Jedis dele onde quer que você deva realizar uma operação e fechá-lo após terminar.

2. Caso contrário, use redisTemplate da mola com a configuração abaixo
@Bean
public JedisConnectionFactory redisConnectionFactory() {
    JedisConnectionFactory factory = new JedisConnectionFactory();
    factory.setHostName(redisHostName);
    factory.setPort(redisPort);
    factory.setUsePool(true);

    return factory;
}

@Bean
public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory cf) {
    RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<Object, Object>();
    redisTemplate.setDefaultSerializer(new StringRedisSerializer());
    redisTemplate.setConnectionFactory(cf);

    return redisTemplate;
}