了解适用于 Java 和 Spring Boot 应用程序的 Redis

已完成

在部署 Azure Cache for Redis 缓存实例时,请阅读以下部分,了解有关以下技术的详细信息:

  • Redis 和 Azure Cache for Redis。
  • Redis 与 Java 和 Spring Boot 应用程序。
  • Spring Data Redis 分布式缓存。

Redis 和 Azure Cache for Redis

Redis 是已获得 BSD 许可的开源分布式内存中数据存储,具有可选的持久性,可充当缓存和消息代理。 Redis 是最受欢迎的键值数据库之一,它易于使用、性能高且可伸缩,是应用程序开发人员的绝佳选择。

Azure Cache for Redis 是 Redis 的托管版本,由 Azure 在云中维护和运营。 Azure Cache for Redis 具备 Redis 的所有优点,包括高吞吐量和高性能,每秒可处理数百万个请求。 Azure 还具备托管云服务的优势,例如自动修补、更新、缩放和预配。

Azure Cache for Redis 提供多个服务层级。 高级层为最关键的工作负载提供群集、异地复制和高可用性。

Azure Cache for Redis 用例

Redis 和 Azure Cache for Redis 具有以下主要用例:

  • 分布式缓存可以加快依赖 SQL 数据库的应用程序的速度。 Redis 可以降低应用程序的成本,因为缩放 Redis 群集比缩放数据库更便宜。
  • HTTP 会话数据存储可存储会话数据,从而允许缩放基于会话的应用程序。 使用 JavaServer Faces (JSF) 或在用户会话中存储安全数据的应用程序通常使用此机制。
  • 消息代理解决方案实现发布/订阅或队列体系结构。

配合使用 Redis 和 Java

Redis 没有为 Java 开发人员提供官方库,但有几个开源库。 Java 开发人员要制定的主要决策之一是选择最符合需求的库。 最常用的是以下库。

  • Jedis 是最常用的库,它具有简单易用的特点。
  • Lettuce 是本模块使用的库,因为它与 Spring Data for Redis 捆绑在一起。 Lettuce 具有强大的异步支持,如果想创建一个易于响应的 Spring 应用程序,这一点很重要。
  • Redisson 是最先进的 Redis 客户端。 可以将 Redisson 用作 Hibernate 二级缓存(如果需要该功能)。

使用 Spring Data Redis 创建分布式缓存

要配合使用 Redis 与 Spring Boot(通常使用 Spring Initializr)来创建分布式缓存,请执行三个主要任务:

  1. 将 Spring Data Redis 库添加到应用程序中。
  2. 配置 application.yml 文件以连接到 Azure Cache for Redis 实例。
  3. 编写业务逻辑代码,使用 Spring Data Redis 在缓存中存储和检索数据。

当前模块使用 Lettuce 库,但除非需要高级配置,否则无需直接使用该库。 Spring Data 使用大多数 Spring 开发人员熟悉的机制处理数据访问代码。 还可以使用 Spring Data 通过 Java 持久性 API (JPA) 访问 SQL 数据库,以及访问 MongoDB 等 NoSQL 数据库。

Spring Data 要求创建以下类:

  • 用于保存数据的 Java bean。 使用 @RedisHash Java 注释对类进行批注,以通过特定键存储和检索 Redis 数据。

  • Spring 存储库。 此存储库是一种特定的 Java 类,可以对存储数据的 Java bean 执行数据库创建、检索、更新、删除 (CRUD) 操作。 例如,此类可以存储一个 bean 实例,或检索 bean 列表。

    可以将此 Spring 存储库注入到任何标准 Spring bean 中。 例如,可以将该存储库注入 Spring MVC REST 控制器,该控制器用于存储和访问存储库数据。

继续学习下一单元,通过使用 Spring Data Redis 的分布式缓存创建 Spring Boot 应用程序。 可以在等待 Azure Cache for Redis 缓存完成部署时创建应用程序。