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;

        }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容