Redis
 sql >> Database >  >> NoSQL >> Redis

Impossibile ottenere la connessione Jedis; Impossibile ottenere una risorsa dal pool

1. Prova a utilizzare il pool di connessioni Jedis per ottenere l'istanza Jedis invece di utilizzare new Jedis() , per questo dovrai configurare JedisPool in config Poiché lo stai usando come bean, dovresti usare il bean JedisPool e quindi ottenere Jedis da esso ovunque tu debba eseguire un'operazione e chiuderlo dopo aver terminato.

2. Altrimenti usa redisTemplate di Spring con la configurazione come di seguito

@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;
}