1.Spring Boot 整合 Redis
1.1 导入依赖
如果在创建 Spring Boot 项目的时候没有考虑过使用 redis ,而后期要用 redis 的话。导入下面一个依赖就可。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
1.2 配置链接属性
配置 redis 属性,用 application.xml 和 application.yml 都可以。这里我使用的是更简洁的 application.yml。
spring:
redis:
host: 127.0.0.1 #ip
database: 0 #数据库名称,默认 db0
password: 123456789 #密码
port: 6379 ¥端口
jedis:
pool: #链接池设置
max-idle: 8
min-idle: 0
max-active: 8
1.3 使用
RedisAutoConfiguration 为我们默认配置了 JedisConnectionFactory,RedisTemplate 以及 StringRedisTemplate,让我们可以直接的使用 Redis 作为数据储存。
@Resource
private RedisTemplate redisTemplate;
@Resource
private StringRedisTemplate stringRedisTemplate;
String Data Redis 为我们提供了 RedisTemplate 和 StringRedisTemplate 两个模版来进行数据操作,其中:StringRedisTemplate 只针对键值都是字符串的数据进行操作。
当我们的数据存储到 Redis 的时候,我们的键(key)和 值(value)都是通过 Spring 提供的 Serializer 序列化到数据可中的。
- RedisTemplate 默认使用的是 JdkSerializationRedisSerializer
- StringRedisTemplate 默认使用的是 StringRedisSerializer。
Spring Data JPA 为我们提供了下面的 Serializer
- GenericToStringSerializer
- Jackson2JsonRedisSerializer
- JdkSerializationRedisSerializer
- OxmSerializer
- StringRedisSerializer
2. 配置 RedisTemplate 序列化类型
Spring Boot 为我们自动配置了 RedisTemplate,而 RedisTemplate 使用的是 JdkSerializationRedisSerializer,这个对我们用 redis 图形化客户端很不直观,因为 JdkSerializationRedisSerializer 使用二进制形式储存数据,在此我们将自己配置 RedisTemplate 并定义 Serializer。
@SpringBootApplication
public class SpringBootDemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootDemoApplication.class, args);
}
/**
* 设置 redisTemplate 的序列化设置
* @param redisConnectionFactory
* @return
*/
@Bean
public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
// 1.创建 redisTemplate 模版
RedisTemplate<Object, Object> template = new RedisTemplate<>();
// 2.关联 redisConnectionFactory
template.setConnectionFactory(redisConnectionFactory);
// 3.创建 序列化类
Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
ObjectMapper om = new ObjectMapper();
// 4.设置可见度
om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
// 5.启动默认的类型
om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
// 6.序列化类,对象映射设置
jackson2JsonRedisSerializer.setObjectMapper(om);
// 7.设置 value 的转化格式和 key 的转化格式
template.setValueSerializer(jackson2JsonRedisSerializer);
template.setKeySerializer(new StringRedisSerializer());
template.afterPropertiesSet();
return template;
}
}
这样,我们从图形化客户端可以很直观的看出我们存储的数据。
若博客中有错误或者说的不好,请勿介意,仅代表个人想法。
csdn博客:https://blog.csdn.net/LNView
本文地址:https://blog.csdn.net/LNView/article/details/80777144
有问题或者喜欢的欢迎评论。
转载请注明出处!!!!!!
参考资料:
《Spring Boot 实战》