package examples.dataloader;

import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import redis.clients.jedis.JedisPoolConfig;
import org.springframework.data.redis.connection.jedis.JedisClientConfiguration;
import org.springframework.data.redis.core.RedisTemplate;


public class redisBuilderMyself {


    public static JedisConnectionFactory redisConnectionFactory() {

        RedisStandaloneConfiguration config = new RedisStandaloneConfiguration(
                "r-bp1pi8wyv6lzvgjy5z.redis.rds.aliyuncs.com", 6379);
        config.setPassword("Wqsd@2019");

        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        // 最大连接数, 根据业务需要设置，不能超过实例规格规定的最大连接数。
        jedisPoolConfig.setMaxTotal(30);
        // 最大空闲连接数, 根据业务需要设置，不能超过实例规格规定的最大连接数。
        jedisPoolConfig.setMaxIdle(20);
        // 关闭 testOn[Borrow|Return]，防止产生额外的PING。
        jedisPoolConfig.setTestOnBorrow(false);
        jedisPoolConfig.setTestOnReturn(false);

        JedisClientConfiguration jedisClientConfiguration = JedisClientConfiguration.builder().usePooling().poolConfig(
                jedisPoolConfig).build();

        return new JedisConnectionFactory(config, jedisClientConfiguration);
    }




    public static RedisTemplate<String, String> redisTemplate(RedisConnectionFactory connectionFactory) {
        RedisTemplate<String, String> template = new RedisTemplate<>();
        template.setConnectionFactory(connectionFactory);
        return template;
    }
}


