Springboot - 16.二级分布式缓存集成-Redis

导读

名称 链接 作用 使用场景
Springboot-Redis - 1.Redis简介 链接 Redis是一个开源的内存数据结构服务器,用作数据库、缓存和消息代理。 用于缓存、消息队列、实时分析、地理空间、聊天/消息、媒体流、发布/订阅等场景。
Springboot-Redis - 2.Redis分层抽象 链接 描述了Redis的内部结构和数据组织方式。 用于理解Redis的内部工作原理和数据存储方式。
Springboot-Redis - 3.Redis连接方式 链接 描述了如何连接到Redis服务器的不同方法。 根据应用的需求选择合适的连接方式。
Springboot-Redis - 4.Redis的线程安全问题 链接 描述了Redis的线程模型和如何处理并发问题。 在高并发环境下确保Redis操作的线程安全。
Springboot-Redis - 5.通过 RedisTemplate 处理对象 链接 使用RedisTemplate在Java中操作Redis。 Java应用中操作Redis数据。
Springboot-Redis - 6.Redis Sentinel (哨兵)的支持 链接 描述了Redis Sentinel的工作原理和如何配置。 用于监控Redis主从服务器,实现自动故障转移。
Springboot-Redis - 7.Redis 集群 链接 描述了Redis集群的工作原理和如何配置。 用于提高Redis的可用性和分区容错性。
Springboot-Redis - 8.Redis 序列化和反序列化 链接 描述了如何在Redis中存储和检索复杂的数据结构。 用于将复杂的数据结构存储到Redis中。
Springboot-Redis - 9.Redis 的 Hash 映射 链接 描述了Redis的哈希数据类型和如何使用它。 存储和检索键值对集合。
Springboot-Redis - 10.Redis 消息 (Pub/Sub) 链接 描述了Redis的发布/订阅消息系统。 实现消息的发布和订阅功能。
Springboot-Redis - 11.Redis 事务 链接 描述了如何在Redis中使用事务。 保证一系列命令的原子性执行。
Springboot-Redis - 12.Redis Pipelining(管道) 链接 描述了如何使用Redis管道来优化性能。 批量执行命令以减少网络延迟。
Springboot-Redis - 13.Lua 脚本执行 链接 描述了如何在Redis中执行Lua脚本。 原子性地执行复杂的操作。
Springboot-Redis - 14.响应式的 Redis 支持 链接 描述了如何在Java中使用响应式编程与Redis交互。 在Java应用中实现响应式Redis操作。

中文文档

  • Redis

spring-boot-starter-data-redis详解

spring-boot-starter-data-redis 是 Spring Boot 提供的一个启动器,用于简化在 Spring Boot 项目中使用 Redis 的过程。这个启动器基于 Spring Data Redis,它是 Spring Data 项目的一个子项目,旨在为 Redis 提供更为简单、直观的 API。

以下是一些关于 spring-boot-starter-data-redis 的关键点:

✌1. 自动配置

  • 当你在 Spring Boot 项目中引入此启动器后,Spring Boot 将自动配置 Redis 连接工厂、模板等组件。为了深入了解这个过程,我们需要关注一些关键的自动配置类和组件。

✍1. RedisAutoConfiguration

这是一个核心的自动配置类,它负责创建和配置 RedisConnectionFactoryRedisTemplate

✍2. RedisConnectionFactory

这是 Redis 客户端和 Redis 服务器之间的连接的工厂。根据你的配置和类路径,Spring Boot 可以为你自动配置以下类型的连接工厂:

  • JedisConnectionFactory: 使用 Jedis 作为客户端库。
  • LettuceConnectionFactory: 使用 Lettuce 作为客户端库。

✍3. RedisTemplateStringRedisTemplate

这些是 Spring 提供的高级模板类,用于与 Redis 交互。它们封装了 Redis 客户端的操作,并提供了一种更加面向对象的方式来与 Redis 交互。

✍4. 条件检查

Spring Boot 使用 @ConditionalOnClass@ConditionalOnMissingBean 等条件注解来确保只在满足特定条件时应用自动配置。例如,如果你的类路径上没有 Jedis 类,那么与 Jedis 相关的 beans 就不会被创建。

✍5. 属性配置

application.propertiesapplication.yml 中,你可以提供一系列属性来定制 Redis 的配置,例如:

spring.redis.host=localhost
spring.redis.port=6379
spring.redis.password=yourpassword
spring.redis.database=0

✍6. 自动配置细节

  • 如果你的项目同时包含 Jedis 和 Lettuce,Spring Boot 默认使用 Lettuce。
  • 如果你自己定义了一个 RedisConnectionFactory bean,Spring Boot 的自动配置将不会创建一个新的。
  • 同样,如果你定义了自己的 RedisTemplateStringRedisTemplate,Spring Boot 的默认版本也不会被应用。
  • 为了理解这个自动配置是如何工作的,最好的方法是查看 Spring Boot 的源代码。特别是,你可以查看 RedisAutoConfiguration 类和与其相关的其他配置类。

  • 总之,Spring Boot 通过自动配置为你提供了与 Redis 的无缝集成。你只需要简单地添加 spring-boot-starter-data-redis 依赖并提供一些基本的属性配置,Spring Boot 就会为你处理其余的工作。

你可能感兴趣的:(Springboot,缓存,spring,boot,分布式)