在springboot中使用lettuce来连接redis
一.搭建一个项目
- 选中spring initializr
- 设置好项目名和包名后next

- 设置要用的jar包,然后next,finish


二.配置lettuce
- 在pom.xml文件添加依赖
<!--默认使用的是lettuce-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!--lettuce-连接池-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
- 在src/main/resources下新建一个application.yml文件
!!!!!!!!!!!!注意,不要把注释加进去
server:
port: 8080
spring:
redis:
port: 6379
password: 123456
host: 192.168.80.228
lettuce:
pool:
max-active: 8 #连接池最大连接数,为负数则没有限制
max-idle: 8 #连接池最大空闲连接
min-idle: 0 #连接池最小空闲连接
max-wait: 1000 #连接池最大阻塞等待时间,为负数则没有限制
shutdown-timeout: 100 #关闭超时时间
- 编写config
在src/main/java下新建一个config.RedisConfig.java
这里的序列化配置不知道为什么一直没有生效,试过很多方法了,搞不懂,如果有会的大佬,可以告诉我怎么回事啊。
package com.config
@Configuration
public class RedisConfig extends CachingConfigurerSupport {
@Bean
public RedisTemplate<String, Serializable> redisCacheTemplate(LettuceConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Serializable> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory);
Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
// 使用Jackson2JsonRedisSerialize 替换默认序列化
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
//设置序列化
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(jackson2JsonRedisSerializer);
template.setHashKeySerializer(new StringRedisSerializer());
template.setHashValueSerializer(jackson2JsonRedisSerializer);
template.afterPropertiesSet();
return template;
}
}
三.测试是否配置成功
- 在SpringbootLettuceApplicationTests中
@SpringBootTest
class SpringbootLettuceApplicationTests {
@Resource
private RedisTemplate<String, Object> redisTemplate;
@Test
void contextLoads() {
System.out.println(redisTemplate);
redisTemplate.opsForValue().set("aaaa12","123");
}
}
能够输出org.springframework.data.redis.core.RedisTemplate@3e28fee1
或能够写入数据到redis就是成功了
|你知道的越多,不知道的越多。 |如果本文章内容有问题,请直接评论或者私信我。如果觉得写的还不错的话,点个赞也是对我的支持哦。 |未经允许,不得转载!|微信搜【程序员徐小白】,关注即可第一时间阅读最新文章。回复【面试题】有我准备的50道高频校招面试题,以及各种学习资料。

浙公网安备 33010602011771号