Redis
 sql >> Base de données >  >> NoSQL >> Redis

Impossible d'obtenir la connexion Jedis ; Impossible d'obtenir une ressource du pool

1. Essayez d'utiliser le pool de connexions Jedis pour obtenir l'instance Jedis au lieu d'utiliser new Jedis() , pour cela vous devrez configurer JedisPool dans configPuisque vous l'utilisez comme bean, vous devez utiliser le bean JedisPool puis en obtenir Jedis partout où vous êtes censé effectuer une opération et le fermer après avoir terminé.

2.Sinon, utilisez le redisTemplate de Spring avec la configuration ci-dessous

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