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

  • 相关阅读:
    图文详解QT布局管理器
    osg中放大缩小模型
    osgearth中XML文档读取报错
    中国河南省洛阳市嵩县黄庄乡红堂村大树芽组
    GIS数据下载整合
    四面体剖分相关开源软件列表
    在你的QT工程中使用ui文件
    对osgAnimation例子的注释的注释
    [debug]调试Release版本应用程序
    链表面试题总结
  • 原文地址:https://www.cnblogs.com/dunkbird/p/13602536.html
Copyright © 2011-2022 走看看