zoukankan      html  css  js  c++  java
  • Redis設定用ラクラス


    import java.time.Duration;
    import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.data.redis.connection.RedisConnectionFactory;
    import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
    import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
    import org.springframework.data.redis.connection.lettuce.LettucePoolingClientConfiguration;
    import org.springframework.data.redis.core.RedisTemplate;
    import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
    import org.springframework.data.redis.serializer.StringRedisSerializer;


    @Configuration
    public class RedisConfig {

    @Value("${spring.redis.host}")
    private String redisHost;
    @Value("${spring.redis.port}")
    private int redisPort;
    @Value("${spring.redis.database}")
    private int redisDb;
    @Value("${spring.redis.timeout}")
    private int redisTimeout;

    /**
    * Redisテンプレートオブジェクトを取得する.
    */
    @Bean(name = "redisTemplate")
    public RedisTemplate<String, ?> getRedisTemplate(RedisConnectionFactory factory) {

    RedisStandaloneConfiguration redisStandaloneConfiguration =
    new RedisStandaloneConfiguration();
    redisStandaloneConfiguration.setDatabase(redisDb);
    redisStandaloneConfiguration.setHostName(redisHost);
    redisStandaloneConfiguration.setPort(redisPort);
    GenericObjectPoolConfig<?> genericObjectPoolConfig = new GenericObjectPoolConfig<>();
    LettucePoolingClientConfiguration.LettucePoolingClientConfigurationBuilder
    lettucePoolingClientConfigurationBuilder = LettucePoolingClientConfiguration.builder();
    lettucePoolingClientConfigurationBuilder.poolConfig(genericObjectPoolConfig);
    if (redisTimeout > 0) {
    lettucePoolingClientConfigurationBuilder.commandTimeout(Duration.ofMillis(redisTimeout));
    }
    LettuceConnectionFactory connectionFactory =
    new LettuceConnectionFactory(redisStandaloneConfiguration,
    lettucePoolingClientConfigurationBuilder.build());
    connectionFactory.afterPropertiesSet();

    RedisTemplate<String, String> redisTemplate = new RedisTemplate<String, String>();
    StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
    GenericJackson2JsonRedisSerializer jsonRedisSerializer
    = new GenericJackson2JsonRedisSerializer();
    redisTemplate.setConnectionFactory(connectionFactory);
    redisTemplate.setDefaultSerializer(jsonRedisSerializer);
    redisTemplate.setKeySerializer(stringRedisSerializer);
    redisTemplate.setHashKeySerializer(stringRedisSerializer);
    redisTemplate.setValueSerializer(jsonRedisSerializer);
    redisTemplate.setHashValueSerializer(jsonRedisSerializer);
    redisTemplate.afterPropertiesSet();

    return redisTemplate;
    }
    }

  • 相关阅读:
    hihocoder #1467 : 2-SAT·hihoCoder音乐节 2-SAT
    hihoCoder#1185 : 连通性·三 tarjan求强联通分量 缩点 dfs/拓扑排序求路径和最大值
    hihoCoder1175 拓扑排序·二 拓扑排序
    012 列表的一些常用操作符
    011,列表2
    010 列表1
    009,分支和循环3
    008,分支和循环2
    006 Python的操作符
    005 Python的数值类型
  • 原文地址:https://www.cnblogs.com/dunkbird/p/13602536.html
Copyright © 2011-2022 走看看