简介
实践
安装 Redis
使用 Docker 安装 Redis,只需要几行命令即可:
docker pull redis
docker run -d --name myredis -p 6379:6379 -v /usr/local/etc/redis/redis.conf:/usr/local/etc/redis/redis.conf docker.io/redis redis-server /usr/local/etc/redis/redis.conf
使用 -v 将本地的目录与 Redis 容器的目录进行映射,然后在本地的目录就可以对 Redis 进行配置;
引入依赖及配置
导入依赖:spring-boot-starter-data-redis
然后,在配置文件中配置 Redis 相关配置,默认的话,只需要配置主机即可;
这样就可以直接使用了,在 Redis 自动配置中,提供了两个模板类,通过这两个模板类就可以操作 Redis;
@Bean
@ConditionalOnMissingBean(name = "redisTemplate")
public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory)
throws UnknownHostException {
RedisTemplate<Object, Object> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory);
return template;
}
@Bean
@ConditionalOnMissingBean
public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisConnectionFactory)
throws UnknownHostException {
StringRedisTemplate template = new StringRedisTemplate();
template.setConnectionFactory(redisConnectionFactory);
return template;
}
从上面的代码就可以直接看错来有什么区别,更何况时名称;
- RedisTemplate
- key-value:都是 Object 类型
- StringRedisTemplate
- 针对 String 类型的模板类;
默认的序列化器是不会将对象转为 JSON 的,而是 16 位编码;
自定义配置:
@Bean
public RedisTemplate<Object, Object> redisTemplate1(RedisConnectionFactory redisConnectionFactory)
throws UnknownHostException {
RedisTemplate<Object, Object> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory);
Jackson2JsonRedisSerializer<Object> serializer = new Jackson2JsonRedisSerializer<>(Object.class);
template.setDefaultSerializer(serializer);
return template;
}
默认的是 JdkSerializationRedisSerializer 序列化器,通过 setDefaultSerializer 可以设置默认的序列化器,记得最好还是使用 Object 类型,否则限制了单一类型才能使用这个模板转为 JSON;
Q.E.D.
Comments | 0 条评论