sql >> Base de Datos >  >> NoSQL >> Redis

No se puede obtener la conexión de Jedis; No se pudo obtener un recurso del grupo

1. Intente usar el grupo de conexiones de Jedis para obtener la instancia de Jedis en lugar de usar new Jedis() , para eso tendrá que configurar JedisPool en config. Ya que lo está usando como bean, debe usar el bean JedisPool y luego obtener Jedis de allí donde se supone que debe realizar una operación y cerrarlo después de terminar.

2. De lo contrario, use redisTemplate de Spring con la configuración como se muestra a continuación

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