第一步:创建一个spring boot项目

第二步:pom导入redis相关依赖
<!--reids依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!--common-pool,用来配置redis连接池-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
第三步:配置application.yml文件
spring:
redis:
host: 127.0.0.1 #ip地址
port: 6379 #端口号
password: 123456 #如果没有密码,可以不写这一行
# 配置连接池信息
lettuce:
pool:
max-active: 8 # 连接池最大连接数(使用负值表示没有限制)
max-idle: 8 # 连接池中的最大空闲连接
min-idle: 0 # 连接池中的最小空闲连接
max-wait: 100ms # 连接池最大阻塞等待时间(使用负值表示没有限制)
第四步:测试
注意:测试前需要开启redis

@SpringBootTest
class RedisDemoApplicationTests {
//注入RedisTemplate
@Autowired
private RedisTemplate redisTemplate;
@Test
void contextLoads() {
//写入 一条String数据
redisTemplate.opsForValue().set("name","张三");
//通过key值获取数据
Object name = redisTemplate.opsForValue().get("name");
System.out.println(name);
}
}
输出结果:
张三
第五步:存在的问题
虽然在测试中控制台输出的是“张三”。
但我们从redis图形化工具中查看会发现我们存入的key和value不是我们想要存入的:
key(name):![]()
value(张三):"퀅t\u0000\u0006张三"
这是因为RedisTemplate中默认的序列化工具JdkSerializationRedisSerializer,所以会出现以上问题
解决办法:
写一个redis的配置类:
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory redisConnectionFactory){
//创建RedisTemplate对象
RedisTemplate<String,Object> template=new RedisTemplate<>();
//设置连接工厂
template.setConnectionFactory(redisConnectionFactory);
//创建json序列化工具
GenericJackson2JsonRedisSerializer jsonRedisSerializer=new GenericJackson2JsonRedisSerializer();
//设置key的序列化为String
template.setKeySerializer(RedisSerializer.string());
template.setHashKeySerializer(RedisSerializer.string());
//设置value的序列化
template.setValueSerializer(jsonRedisSerializer);
template.setHashValueSerializer(jsonRedisSerializer);
//返回
return template;
}
}
然后只需要将注入的RedisTemplate改成下面这样就行了:
@SpringBootTest
class RedisDemoApplicationTests {
//注入RedisTemplate
@Autowired
private RedisTemplate<String,Object> redisTemplate;
@Test
void contextLoads() {
//写入 一条String数据
redisTemplate.opsForValue().set("name","张三");
//通过key值获取数据
Object name = redisTemplate.opsForValue().get("name");
System.out.println(name);
}
}
注意:有的需要导入Jackson依赖才可以
以上主要就是将我们要存的key和value的序列化工具改变了。




![正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-6.3](https://img-blog.csdnimg.cn/direct/1b9df6ecbfb946ea99d3ea4248c0e962.png)













