谷粒商城实战笔记-152-缓存-缓存使用-整合Redis

文章目录

一,在product模块的pom依赖中增加redis依赖

c 复制代码
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

spring-boot-starter-data-redis 是一个Spring Boot的"Starter"依赖,它主要的作用是简化了在Spring Boot应用程序中集成Redis的配置和使用。

  1. 自动配置 :Spring Boot的自动配置机制会根据你添加的依赖自动配置你的应用程序。对于spring-boot-starter-data-redis,它会自动配置Redis连接,包括连接工厂和模板。

  2. 连接工厂:提供连接到Redis服务器的配置,包括单机模式和集群模式的配置。

  3. 操作模板 :提供对Redis的简单操作,如StringRedisTemplate、RedisTemplate等,这些模板封装了Redis的基本操作,使得数据存取更加方便。

  4. 序列化支持:提供对Java对象序列化和反序列化的支持,以便可以将Java对象存储到Redis中。

  5. 缓存抽象 :集成Spring的缓存抽象,使得可以使用@Cacheable、@CachePut和@CacheEvict等注解来简化缓存逻辑的实现。

  6. 消息队列支持:如果需要,可以集成Spring Integration来使用Redis作为消息队列。

  7. Spring Data Redis:提供对Spring Data Redis Repositories的支持,使得可以方便地实现数据访问层。

  8. 配置属性:提供了一系列配置属性,允许开发者自定义Redis连接的细节,如主机、端口、密码、数据库索引等。

这是由于这个starter的存在,使得我们集成和使用Redis变得非常简单

二,配置redis服务器连接信息

要使用Redis,必然要连接到Redis服务器,所以要提供服务器IP和端口信息。

在配置文件application.yml中做如下配置。

如果redis设置了用户名、密码,也是在这里配置。

三,编写测试用例

在测试类中编写如下测试用例,测试通过说明redis整合成功。

c 复制代码
	@Autowired
    private StringRedisTemplate stringRedisTemplate;

    @Test
   public void redisTest( ) {
        ValueOperations<String, String> op = stringRedisTemplate.opsForValue();
        op.set("redis", UUID.randomUUID().toString());

        System.out.println(op.get("redis"));
    }

四,spring-boot-starter-data-redis的原理

Spring Boot Starter Data Redis 是 Spring Boot 提供的一个自动配置的依赖项,它简化了在 Spring 应用中集成 Redis 的过程。

其大致原理如下:

  1. 依赖注入:首先,Spring Boot Starter Data Redis 通过 Maven 或 Gradle 引入相关依赖,自动将 Redis 相关的库添加到项目中。

  2. 自动配置类 :Spring Boot 的核心是自动配置,它通过 @EnableAutoConfiguration 或 @SpringBootApplication 注解启动。对于 Redis,自动配置类通常是 RedisAutoConfiguration。

  3. 条件注解 :RedisAutoConfiguration 类使用 @Conditional 注解来检查类路径上是否存在 Redis 客户端库(如 Jedis 或 Lettuce)。如果存在,它将配置 Redis 连接。

  4. 配置属性 :Spring Boot 允许通过 application.properties 或 application.yml 文件来配置属性。对于 Redis,可以配置如 spring.redis.host、spring.redis.port 等属性。

  5. 连接工厂 :自动配置类会创建一个 RedisConnectionFactory,这是连接到 Redis 服务器的基础。根据配置的属性,它可能是 JedisConnectionFactory 或 LettuceConnectionFactory。

  6. 模板和仓库 :自动配置类还会配置 StringRedisTemplate 和 RedisTemplate,这些是操作 Redis 的模板类。此外,它还可能配置 RedisRepository 支持,允许直接在存储库接口中使用 Redis 方法。

  7. 缓存管理器 :Spring Boot Starter Data Redis 还可能配置 CacheManager,这样 Spring 缓存抽象就可以使用 Redis 作为缓存存储。

  8. Spring Expression Language (SpEL):在配置过程中,自动配置类可能会使用 SpEL 来动态地设置属性值,例如从环境变量或配置文件中解析值。

  9. Bean 的创建和注册 :自动配置类通过 @Bean 注解声明 Bean,Spring 容器将这些 Bean 注册并管理它们的生命周期。

  10. 错误处理:自动配置类还可能包含错误处理逻辑,以确保在配置失败时提供有用的反馈。

通过这种方式,Spring Boot Starter Data Redis 使得开发者无需编写大量的样板代码来集成 Redis,只需通过简单的配置即可快速使用 Redis 提供的各种功能。

相关推荐
qq_2842740533 分钟前
机械设计基础·滚动轴承全解(类型·代号·选型·寿命)+轮系与蜗杆蜗轮传动
笔记·学习·自动化·制造
ACP广源盛139246256735 小时前
硬件选型笔记:国产 PCIe Gen2.1 交换芯片 IX6024@ACP,工控与存量设备国产化改造方案评估
笔记·硬件架构·硬件工程·pcie·国产芯片
文人sec6 小时前
SQL基础入门笔记 | 从零基础到掌握核心查询语句
数据库·笔记·sql
摇滚侠8 小时前
《计算机是如何工作的:人人都能懂的计算机软硬件工作原理》第 9 章 机器码与汇编语言 阅读笔记 9
java·开发语言·笔记
xier_ran8 小时前
【infra之路】AI 编译器学习笔记(六):重拾 C++——lambda 与 MLIR 中的回调
c++·笔记·学习
志尊宝8 小时前
Vue3 零基础每日笔记(078):首屏加载速度优化汇总——清单化方案
笔记
ZZHow102411 小时前
Ascend C算子开发(高级)笔记
c++·人工智能·笔记·深度学习·华为云
PC2005-cloud12 小时前
Mysql学习笔记:InnoDB Cluster 集群从零搭建实战,基于 Docker 实现高可用读写分离架构
笔记·学习·mysql
小陈phd12 小时前
深入理解agent学习笔记(七)——动态提示词与Skills
笔记·学习
我命由我1234512 小时前
田野笔记极简理解
经验分享·笔记·学习·职场和发展·求职招聘·职场发展·学习方法