springboot 整合 redis
·
环境准备
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>2.7.17</version>
</dependency>
RedisConfig.java
package com.x5dtech.srsp.config;
import com.fasterxml.jackson.databind.ObjectMapper;
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.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
/**
* Redis 配置类,主要配置序列化方式
*/
@Configuration
public class RedisConfig {
/**
* 自定义 RedisTemplate,解决默认序列化问题
*/
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(factory);
// Key 序列化器(String 类型)
StringRedisSerializer keySerializer = new StringRedisSerializer();
template.setKeySerializer(keySerializer);
template.setHashKeySerializer(keySerializer);
// Value 序列化器(Jackson,核心配置)
ObjectMapper objectMapper = new ObjectMapper();
// 关键:不启用任何类型信息嵌入(不调用 activateDefaultTyping)
objectMapper.findAndRegisterModules(); // 仅注册必要模块(如时间类型支持)
GenericJackson2JsonRedisSerializer valueSerializer = new GenericJackson2JsonRedisSerializer(objectMapper);
template.setValueSerializer(valueSerializer);
template.setHashValueSerializer(valueSerializer);
template.afterPropertiesSet();
return template;
}
}
application.yml
spring:
redis:
host: 127.0.0.1
database: 0
password: Admin@123
port: 6379
lettuce: # Lettuce客户端配置
pool:
max-active: 50 # 最大连接数(根据并发量调整,如CPU核心数*2)
max-idle: 16 # 最大空闲连接(保持一定空闲连接,避免频繁创建)
min-idle: 16 # 最小空闲连接
max-wait: 1000ms
zset 使用
更多推荐

所有评论(0)