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

  • 相关阅读:
    GIT使用方法
    结对-结对编项目贪吃蛇-设计文档
    结对-结对编项目贪吃蛇-开发环境搭建过程
    《团队-爬取豆瓣电影TOP250-需求分析》
    《团队-爬取豆瓣电影TOP250-成员简介及分工》
    结对-结对编项目贪吃蛇-需求分析
    20170906-构建之法:阅读问题
    20170906-构建之法:现代软件工程-阅读笔记
    团队名称:极限定理
    软件工程初识
  • 原文地址:https://www.cnblogs.com/dunkbird/p/13602536.html
Copyright © 2011-2022 走看看