Spring Boot 整合 Redis
1 说明
2.0 版本之后的 Spring Boot 集成 Redis 时,不再以 Jedis 为底层,而用 Lettuce 代替(关于 Jedis 的知识,可参考之前文章:【Redis】通过Jedis操作Redis:Jedis 介绍、实战练习 + 学习、常用 API)。
2 新建项目模块
3 分析自动配置类
自动配置类 RedisAutoConfiguration 代码如下:
自动配置类 RedisAutoConfiguration 对应的配置文件为 RedisProperties,部分内容如下:
4 代码测试
application.yml:
spring:
redis:
host: 124.71.229.4
port: 6379
Redis02ApplicationTests :
@SpringBootTest
class Redis02ApplicationTests {
@Autowired
private RedisTemplate redisTemplate;
@Test
void contextLoads() {
// 【RedisTemplate】 为操作 Redis 的工具封装类,
// 包含 Redis 中各种数据类型的操作,和特殊数据类型的操作、事务操作等等
// opsForValue --操作字符串,对应Redis中String类型
// opsForList --操作list,对应Redis中List类型
// opsForSet
// opsForHash
// opsForZSet
// opsForGeo
// opsForHyperLogLog
//获取连接
//RedisConnection connection = redisTemplate.getConnectionFactory().getConnection();
//connection.flushDb();
//connection.flushAll();
redisTemplate.opsForValue().set("name", "zlc");
System.out.println(redisTemplate.opsForValue().get("name"));
}
}
输出:
5 自定义 RedisTemplate
因为默认的 RedisTemplate 的方法上有 @ConditionalOnMissingBean(name = “redisTemplate”) ,因此我们自定义的 RedisTemplate 因默认 name 为首字母小写,name 即 redisTemplate,因此 Spring 容器会使用我们的自定义 RedisTemplate ,而不会注册 默认的 RedisTemplate 。
在学习了B站UP遇见狂神说的教程后,发现我们今后在工作中,很少会用原生的 RedisTemplate 去做开发,反而是经常用自定义 RedisTemplate 以及封装 RedisTemplate 常用方法形成工具类的方式进行开发: