首先引入Redis的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>${spring-boot-version}</version>
</dependency>
记得版本保持对应一致
yml文件配置
spring:
# redis配置
redis:
# 数据库索引
database: 1 # 默认采用零号库(redis默认有0-15号库)
# 服务器地址
host: localhost
# 服务器联接端口
port: 6379
# 数据库密码
password: a
# 联接超时时间
timeout: 10000ms
# jedis配置(联接池配置)
jedis:
pool:
# 联接池最大连接数(负数表示没有限制)
max-active: -1
# 联接池最大阻塞等待时间(负数表示没有限制)
max-wait: -1ms
# 联接池最大空闲联接数
max-idle: 10
# 联接池最小空弦数
min-idle: 0
RedisConfig文件配置
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
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.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory){
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(factory);
// 序列化器,进行序列化操作
// 对象序列化器
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);
// String类型序列化器
StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
/**
* Map{ cart+token : Map{} }
* cart_${token} 字符串键 Map
* String: fig CartItem
* {resfood, num, smallcount}
*/
// 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;
}
}
最后
要使用的时候直接调用就行
@Autowired
private RedisTemplate<String, Object> redisTemplate;