zoukankan      html  css  js  c++  java
  • spring boot集成redis

    package com.qmtt.config;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.data.redis.connection.Message;
    import org.springframework.data.redis.connection.MessageListener;
    import org.springframework.data.redis.connection.RedisConnectionFactory;
    import org.springframework.data.redis.core.RedisTemplate;
    import org.springframework.data.redis.core.StringRedisTemplate;
    import org.springframework.data.redis.listener.ChannelTopic;
    import org.springframework.data.redis.listener.RedisMessageListenerContainer;
    import org.springframework.data.redis.listener.adapter.MessageListenerAdapter;
    import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
    
    import com.fasterxml.jackson.annotation.JsonAutoDetect;
    import com.fasterxml.jackson.annotation.PropertyAccessor;
    import com.fasterxml.jackson.databind.ObjectMapper;
    
    @Configuration
    public class RedisConfig {
        @Bean
        public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) {
            StringRedisTemplate template = new StringRedisTemplate(factory);
            setSerializer(template);// 设置序列化工具
            template.afterPropertiesSet();
            return template;
        }
    
        private void setSerializer(StringRedisTemplate template) {
            @SuppressWarnings({ "rawtypes", "unchecked" })
            Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
            ObjectMapper om = new ObjectMapper();
            om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
            om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
            jackson2JsonRedisSerializer.setObjectMapper(om);
            template.setValueSerializer(jackson2JsonRedisSerializer);
        }
    
        // 订阅pubsub:queue
        @Bean
        RedisMessageListenerContainer redisContainer(RedisConnectionFactory factory) {
            final RedisMessageListenerContainer container = new RedisMessageListenerContainer();
            container.setConnectionFactory(factory);
            MessageListenerAdapter listener = new MessageListenerAdapter(new RedisMessageListener());
            container.addMessageListener(listener, new ChannelTopic("pubsub:queue"));
            return container;
        }
    
        public class RedisMessageListener implements MessageListener {
            @Override
            public void onMessage(final Message message, final byte[] pattern) {
                System.out.println("Message received: " + message.toString());
            }
        }
    }
    #redis相关配置
    # Redis数据库索引(默认为0)
    spring.redis.database=0
    # Redis服务器地址
    spring.redis.host=127.0.0.1
    # Redis服务器连接端口
    spring.redis.port=6379
    # Redis服务器连接密码(默认为空)
    spring.redis.password=111
    # 连接池最大连接数(使用负值表示没有限制)
    spring.redis.pool.max-active=100
    # 连接池最大阻塞等待时间(使用负值表示没有限制)
    spring.redis.pool.max-wait=-1
    # 连接池中的最大空闲连接
    spring.redis.pool.max-idle=20
    # 连接池中的最小空闲连接
    spring.redis.pool.min-idle=10
    # 连接超时时间(毫秒)
    spring.redis.timeout=0

    有追求,才有动力!

    向每一个软件工程师致敬!

    by wujf

    mail:921252375@qq.com

  • 相关阅读:
    Java实现 LeetCode 432 全 O(1) 的数据结构
    Java实现 LeetCode 432 全 O(1) 的数据结构
    Makefile 自动生成依赖
    比较详细的利用虚拟机对SD卡FAT32+EXT4+Ext4分区图解教程
    STM32F0308开发环境的选择--CooCox CoIDE篇
    linux下包管理命令yum与apt-get以及开发环境配置
    裸机编程与OS环境编程的有关思考
    Eclipse C/C++环境配置
    Linux Eclipse代码提示功能设置(Java & C/C++)
    Linux下高效编写Shell——shell特殊字符汇总
  • 原文地址:https://www.cnblogs.com/wujf/p/8473892.html
Copyright © 2011-2022 走看看