• springboot2.5.0 整合 redis 配置详解


    1. pom添加依赖

     <!--redis-->
     <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
     </dependency>

    2. application.properties 配置文件

    #===========Redis配置===========
    # Redis数据库索引(默认为0)  
    spring.redis.database=0
    # Redis服务器地址  
    spring.redis.host=127.0.0.1
    # Redis服务器连接端口  
    spring.redis.port=6379
    # Redis服务器连接密码
    spring.redis.password=root
    # 连接池最大连接数(使用负值表示没有限制)  
    spring.redis.pool.max-active=200
    # 连接池最大阻塞等待时间(使用负值表示没有限制)  
    spring.redis.pool.max-wait=-1
    # 连接池中的最大空闲连接 
    spring.redis.pool.max-idle=10
    # 连接池中的最小空闲连接  
    spring.redis.pool.min-idle=0
    # 连接超时时间(毫秒)
    spring.redis.timeout=2000ms
    spring.redis.jedis.pool.max-wait=-1ms
    #===========Redis配置===========

    3. RedisConfig.java 配置类

    package org.fh.config;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.data.redis.connection.RedisConnectionFactory;
    import org.springframework.data.redis.core.RedisTemplate;
    import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
    import org.springframework.data.redis.serializer.StringRedisSerializer;
    
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
    import com.fasterxml.jackson.annotation.PropertyAccessor;
    import com.fasterxml.jackson.annotation.JsonAutoDetect;
    
    /**
     *  说明:Redis
     * from:www.fhadmin.org
     */
    @Configuration
    public class RedisConfig {
    
    	@Bean
    	@SuppressWarnings("all")
    	public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
    		RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();
    		template.setConnectionFactory(factory);
    		Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
    		ObjectMapper om = new ObjectMapper();
    		om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
    		om.activateDefaultTyping(LaissezFaireSubTypeValidator.instance , ObjectMapper.DefaultTyping.NON_FINAL);
    		jackson2JsonRedisSerializer.setObjectMapper(om);
    		StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
    		// key采用String的序列化方式
    		template.setKeySerializer(stringRedisSerializer);
    		// hash的key也采用String的序列化方式
    		template.setHashKeySerializer(stringRedisSerializer);
    		// value序列化方式采用jackson
    		template.setValueSerializer(jackson2JsonRedisSerializer);
    		// hash的value序列化方式采用jackson
    		template.setHashValueSerializer(jackson2JsonRedisSerializer);
    		template.afterPropertiesSet();
    		return template;
    	}
    
    }
    

    4. 调用redis

       @Autowired
       private RedisTemplate<String, Object> redisTemplate;
    
    	/**
    	 * 普通缓存获取
    	 * @param key 键
    	 * @return 值
    	 */
    	public Object get(String key) {
    		return key == null ? null : redisTemplate.opsForValue().get(key);
    	}
    
    	/**
    	 * 普通缓存放入
    	 * @param key 键
    	 * @param value 值
    	 * @return true成功 false失败
    	 */
    	public boolean set(String key, Object value) {
    		try {
    			redisTemplate.opsForValue().set(key, value);
    			return true;
    		} catch (Exception e) {
    			//e.printStackTrace();
    			return false;
    		}
    	}
    
    
  • 相关阅读:
    委托和泛型
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
  • 原文地址:https://www.cnblogs.com/sjingser1/p/14840368.html
Copyright © 2020-2023  润新知