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

  • 相关阅读:
    WEB-INF目录与META-INF目录的作用
    Spring中的jar包详解
    fatal: Could not read from remote repository.的解决办法
    如何解决failed to push some refs to git
    Spring Boot 集成servlet,发布为可直接运行的war包,方便后续打包为docker镜像。
    使用IntelliJ IDEA,gradle开发Java web应用步骤
    git 命令使用常见问题
    自己动手搭建Git服务器-Gitblit
    windows 安装git
    springMVC 接收数组参数,mybatis 接收数组参数,mybatis批量插入/批量删除案例
  • 原文地址:https://www.cnblogs.com/dunkbird/p/13602536.html
Copyright © 2011-2022 走看看