介绍
五大基本类型
-
String(字符串)
-
Hash(哈希)
-
List(列表)
-
Set(集合)
-
Zset (sorted set:有序集合)
在redis5.0之后,新加了 stream 类型 ,官网文档:Redis Streams | Redis
使用
(redis的安装过程略,自己去安装,很简单)
先创建一个空的 springboot 工程
1、引入依赖
<!--redis依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!--Jackson依赖-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
2、配置redis
spring:
redis:
host: localhost
port: 6379
password: 123456
3、注入RedisTemplate
由于SpringBoot的自动装配,RedisTemplate我们拿来就能直接使用
@Resource
private RedisTemplate redisTemplate;
4、测试使用
直接调用redisTemplate的方法,发现前面说到的五大基本类型都是存在的。
在这里,用spring的使用为例子,其他使用同理
@Test
void test() {
redisTemplate.opsForValue().set("name","hsx");
}
插入数据后,用redis可视化工具可以看到,存入的key和value都是一长串看不懂的内容
1)redis的序列化规则
看 RedisTemplate 源码,发现,在默认,序列化是是走的是JDK的序列化器。而继续跟踪看源码发现,默认JDK序列化器走的是,默认将我们存的key和value转成字节。
2)重写redis序列化规则
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory){
// 创建RedisTemplate对象
RedisTemplate<String, Object> template = new RedisTemplate<>();
// 设置连接工厂
template.setConnectionFactory(connectionFactory);
// 创建JSON序列化工具
GenericJackson2JsonRedisSerializer jsonRedisSerializer =
new GenericJackson2JsonRedisSerializer();
// 设置Key的序列化
template.setKeySerializer(RedisSerializer.string());
template.setHashKeySerializer(RedisSerializer.string());
// 设置Value的序列化
template.setValueSerializer(jsonRedisSerializer);
template.setHashValueSerializer(jsonRedisSerializer);
// 返回
return template;
}
}
然后去调用刚才的测试代码,发现结果是符合我们的要求: