了解适用于 Java 和 Spring Boot 应用程序的 Redis
部署 Azure Redis 缓存实例时,请阅读以下部分,详细了解以下技术:
- Redis 和 Azure Cache for Redis。
- 使用 Java 和 Spring Boot 应用程序的 Redis。
- Spring Data Redis 分布式缓存。
Redis 和 Azure Cache for Redis
Redis 是一种 BSD 许可的开源分布式内存中数据存储,具有可选的持久性,充当缓存和消息代理。 Redis 是最受欢迎的键值数据库之一,易于使用、性能和可伸缩性,因此非常适合应用程序开发人员。
Azure Cache for Redis 是 Redis 的托管版本,由 Azure 在云中维护和运营。 Azure Redis 缓存提供 Redis 的所有优势,包括高吞吐量和性能,每秒处理数百万个请求。 Azure 还提供托管云服务的诸多优势,例如自动修补、更新、扩展和预配置。
Azure Redis 缓存提供多个服务层级。 高级层为最关键的工作负荷提供群集、异地复制和高可用性。
用于 Redis 的 Azure 缓存用例
Redis 和 Azure Redis 缓存提供以下主要用例:
- 分布式缓存加快依赖于 SQL 数据库的应用程序的速度。 Redis 可以降低应用程序的成本,因为缩放 Redis 群集比缩放数据库便宜。
- HTTP 会话数据存储存储会话数据,支持基于会话的应用程序扩展。 使用 JavaServer Face(JSF)或存储在用户会话中的安全数据的应用程序通常使用此机制。
- 消息代理解决方案实现发布/订阅或队列体系结构。
将 Redis 与 Java 配合使用
Redis 不提供 Java 开发人员的官方库,但有几个开源库。 作为 Java 开发人员的主要决策之一是选择最符合需求的库。 最常用的是以下库。
- Jedis 是最常用的库,易于使用。
- Lettuce 是本模块使用的库,因为它与 Spring Data for Redis 捆绑在一起。 生菜具有出色的异步支持,如果要创建反应式 Spring 应用程序,这一点很重要。
- 雷迪森 是最先进的 Redis 客户端。 如果需要使用该功能,可以将 Redisson 用作 Hibernate 的二级缓存。
使用 Spring Data Redis 创建分布式缓存
若要在 Spring Boot 中使用 Redis 创建分布式缓存,通常使用 Spring Initializr,需要执行三个主要任务:
- 将 Spring Data Redis 库添加到应用程序。
- 配置 application.yml 文件以连接到 Azure Redis 缓存实例。
- 使用 Spring Data Redis 存储和检索缓存中的数据,对业务逻辑进行编码。
当前模块使用 Lettuce 库,但无需直接使用库,除非需要高级配置。 Spring Data 使用大多数 Spring 开发人员应该熟悉的机制来处理数据访问代码。 还可以使用 Spring Data 通过 Java 持久性 API(JPA)访问 SQL 数据库,以及访问 NoSQL 数据库(如 MongoDB)。
Spring Data 要求创建以下类:
用于保存数据的 Java bean。 使用
@RedisHash
Java 批注对类进行批注,以便通过特定键存储和检索 Redis 数据。Spring 存储库。 此存储库是一个特定的 Java 类,可以对存储数据的 Java 豆执行数据库创建、检索、更新、删除(CRUD)作。 例如,此类可以存储一个 bean 实例,或检索 bean 列表。
可以将此 Spring 存储库注入到任何标准 Spring bean 中。 例如,可以将存储库注入 Spring MVC REST 控制器,该控制器存储和访问存储库数据。
转到下一个单元,创建具有使用 Spring Data Redis 的分布式缓存的 Spring Boot 应用程序。 等待 Azure Cache for Redis 缓存完成部署时,可以创建应用程序。