了解適用於 JAVA 和 Spring Boot 應用程式的 Redis

已完成

當您的 Azure Cache for 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 是 Azure 在雲端中維護及運作的受控 Redis 版本。 Azure Cache for Redis 提供 Redis 的所有權益,包括每秒處理數百萬個要求的絕佳輸送量和效能。 Azure 還會提供受控雲端服務的優勢,例如自動修補、更新、縮放和佈建。

Azure Cache for Redis 提供數個服務層級。 進階層級可為最重要的工作負載提供叢集、異地複寫和高可用性。

Azure Cache for Redis 使用案例

Redis 和 Azure Cache for Redis 提供了下列主要使用案例:

  • 「分散式快取」 可加速依賴 SQL 資料庫的應用程式。 Redis 可以降低應用程式的成本,因為縮放 Redis 叢集比縮放資料庫更便宜。
  • HTTP 工作階段資料存放區會儲存工作階段資料,以允許縮放工作階段型應用程式。 使用 JAVAServer Face (JSF) 的應用程式,或在使用者工作階段中儲存安全性資料的應用程式,通常會使用這個機制。
  • 訊息代理程式解決方案會實作發佈/訂閱或佇列架構。

使用有 Java 的 Redis

Redis 不會為 JAVA 開發人員提供官方程式庫,但有數個開放原始碼程式庫。 身為 JAVA 開發人員的主要決策之一,就是選取最符合您需求的程式庫。 最受歡迎的是下列的程式庫。

  • Jedis 是最常使用的程式庫,既簡單又容易使用。
  • Lettuce 是我們將在此課程模組中使用的程式庫,因為會與 Spring Data for Redis 搭售。 Lettuce 有絕佳的非同步支援,如果想要建立回應式的 Spring 應用程式,這點很重要。
  • Redisson 是最進階的 Redis 用戶端。 如果您需要此功能,也可以使用 Redisson 作為休眠的第二層快取使用。

使用 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 來存取 SQL 資料庫,方法是使用 JAVA 持續性 API (JPA),以及存取 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 快取完成部署時建立應用程式。