谷粒商城实战笔记-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的简单操作,如StringRedisTemplateRedisTemplate等,这些模板封装了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.propertiesapplication.yml 文件来配置属性。对于 Redis,可以配置如 spring.redis.hostspring.redis.port 等属性。

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

  6. 模板和仓库 :自动配置类还会配置 StringRedisTemplateRedisTemplate,这些是操作 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 提供的各种功能。

相关推荐
李小星同志12 分钟前
高级算法设计与分析 学习笔记6 B树
笔记·学习
霜晨月c23 分钟前
MFC 使用细节
笔记·学习·mfc
码爸29 分钟前
flink 批量压缩redis集群 sink
大数据·redis·flink
Jhxbdks36 分钟前
C语言中的一些小知识(二)
c语言·开发语言·笔记
AlexMercer10121 小时前
【C++】二、数据类型 (同C)
c语言·开发语言·数据结构·c++·笔记·算法
微刻时光2 小时前
Redis集群知识及实战
数据库·redis·笔记·学习·程序人生·缓存
chnyi6_ya2 小时前
一些写leetcode的笔记
笔记·leetcode·c#
丁总学Java2 小时前
如何使用 maxwell 同步到 redis?
数据库·redis·缓存
蘑菇蘑菇不会开花~2 小时前
分布式Redis(14)哈希槽
redis·分布式·哈希算法
爱吃南瓜的北瓜2 小时前
Redis的Key的过期策略是怎样实现的?
数据库·redis·bootstrap