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

devtools/2024/10/19 2:22:48/

文章目录

  • 一,在product模块的pom依赖中增加redis依赖
  • 二,配置redis服务器连接信息
  • 三,编写测试用例
  • 四,spring-boot-starter-data-redis的原理

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

        <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_30">二,配置redis服务器连接信息

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

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

在这里插入图片描述

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

三,编写测试用例

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

	@Autowiredprivate StringRedisTemplate stringRedisTemplate;@Testpublic void redisTest( ) {ValueOperations<String, String> op = stringRedisTemplate.opsForValue();op.set("redis", UUID.randomUUID().toString());System.out.println(op.get("redis"));}

redis_59">四,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 提供的各种功能。


http://www.ppmy.cn/devtools/93719.html

相关文章

08:【stm32】中断二:EXTI(外部中断)

EXTI&#xff08;外部中断&#xff09; 1、EXTI简介2、EXTI的内部结构2.1、EXTI通道2.2、内部寄存器 3、EXTI的编写程序3.1、EXTI的编程接口3.1.1、EXTI_Init 4、编写实验 1、EXTI简介 外部中断控制器&#xff0c;能够检测外部输入信号的变化边沿并由此产生中断。通过检测上升沿…

使用WinCC flexible自带工具对HMI进行镜像备份

西门子WinCC flexible 2008集成SIMATIC ProSave系统镜像备份工具&#xff0c;我们可以使用它对公司现有设备的西门子触摸屏进行完整的备份&#xff0c;当触摸屏损坏或者数据丢失时我们可以使用备份的镜像文件对触摸屏系统进行修复。 以下是备份的步骤 一、一台安装WinCC flexi…

OpenAI 发布 GPT-4o 模型安全评估报告:风险等级为“中等”|TodayAI

OpenAI 近日发布了最新的 GPT-4o 系统卡&#xff0c;这是一份研究文件&#xff0c;详细介绍了公司在推出其最新 AI 模型之前所进行的安全措施和风险评估。根据该评估报告&#xff0c;GPT-4o 的总体风险等级被评定为 “中等” 。 GPT-4o 于今年 5 月首次公开发布。在其发布之前…

HtmlUnit:探索Web自动化的强大工具

文章目录 官网链接原理基础使用1. 添加依赖2. 发送HTTP请求并解析页面 高级使用1. 模拟表单提交2. 处理JavaScript弹窗3. 异步请求处理 优点结论 HtmlUnit 是一个开源的“无头”&#xff08;headless&#xff09;浏览器&#xff0c;它模拟了浏览器环境&#xff0c;允许开发者在…

设计模式 由浅入深(待完结)

一、设计模式是什么&#xff1f; 设计模式是指在软件开发中&#xff0c;经过验证的&#xff0c;用于解决在特定环境下&#xff0c;重复出现的&#xff0c;特定问题的解决方案。 二、设计模式有哪些&#xff1f; 1. 观察者模式 定义对象间的一种一对多&#xff08;变化&#x…

Win/Mac/Linux/Andriod/IOS界面UI设计 - pyside6 - 01 基础系统框架

文章目录 写在前面一、pyside6是什么?1.1 pyside6是什么?1.2 pyside6与PyQt6的关系?怎么选?1.2.1 pyside6与PyQt6的关系1.2.2 选择指南二、创建pyside6的基础系统框架2.1 创建虚拟环境2.1.1 Python兼容性矩阵2.1.2 安装MiniConda2.1.3 使用MiniConda创建虚拟环境2.1.4 激活…

Kibana,Docker Remote Api,Kubernetes Api Server我未授权访问漏洞(附带修复方法)

一.Kibana Kibana是⼀个开源的分析与可视化平台&#xff0c;设计出来⽤于和Elasticsearch⼀起使⽤的。你可以⽤kibana搜索、查看存放在Elasticsearch中的数据。Kibana与Elasticsearch的交互⽅式是以各种不同的图表、表格、地图等直观地展示数据&#xff0c;从⽽达到⾼级的数据分…

移动设备上的交互式AI提示库

摘要&#xff1a; 本文介绍了一种新型的移动应用程序&#xff0c;该程序提供了一个丰富的AI提示库&#xff0c;用于辅助用户与AI语言模型的交互。该应用程序以其用户友好的界面和社区功能&#xff0c;为用户提供了一种新颖的学习和交流平台。 关键词&#xff1a; AI提示库&…