共用方式為


快速入門:使用 Azure Cache for Redis 搭配 Go

在本文中,您將了解如何在 Go 中建置 REST API,以在 Azure Cache for Redis 中儲存和擷取 雜湊資料結構所支援的使用者資訊。

跳至 GitHub 上的程式碼

如果要直接跳到程式碼,請參閱 GitHub 上的 Go 快速入門

先決條件

建立 Azure Cache for Redis 執行個體

  1. Azure 入口網站中,搜尋並選取 [Azure Cache for Redis]。

  2. [Azure Cache for Redis] 頁面上,選取 [建立>Azure Cache for Redis]。

  3. 在 [新增 Redis 快取] 頁面的 [基本] 索引卷標上,設定下列設定:

    • 用帳戶:選取要使用的訂用帳戶。
    • 資源群組:選取資源群組,或選取 [ 新建 ],然後輸入新的資源組名。 將所有應用程式資源放在相同的資源群組中,可讓您輕鬆地管理或刪除它們。
    • 名稱:輸入區域中唯一的快取名稱。 名稱必須:
      • 為 1 到 63 個字元的字串。
      • 只包含數字、字母和連接號。
      • 以數字或字母開頭和結尾。
      • 未包含連續的連字號。
    • 區域:選擇與其他使用快取服務的服務靠近的 Azure 區域
    • 快取 SKU:選取 SKU 以判斷快取可用的大小、效能和功能。
    • 快取大小:選取快取大小。 如需詳細資訊,請參閱 Azure Cache for Redis 概觀

    顯示 [新增 Redis 快取] 頁面 [基本] 分頁的螢幕擷取畫面。

  4. 選取 網路 索引標籤,或選取 下一步:網路

  5. 在 [網路] 索引標籤上,選取要用於快取的連線方法。 建議使用私人端點以增強安全性。 如果您選取 [私人端點],請選取 [新增私人端點 ],然後建立私人端點。

  6. 選取 [ 進階] 索引卷標,或選取 [ 下一步:進階]。

  7. 在 [ 進階 ] 窗格上,設定下列選項:

    • 選取 [Microsoft [項目驗證 ] 或 [ 存取金鑰驗證]。 默認會啟用 entra Authentication Microsoft
    • 選擇是否 要啟用 非 TLS 埠。
    • 針對進階快取,您可以設定或停用 可用性區域。 您無法在建立快取後停用可用性區域。 針對標準快取,系統會自動配置可用性區域。 可用性區域不適用於基本 SKU。
    • 針對進階快取,請設定 複本計數叢集分區計數系統指派的受控識別和數據 持續性的設定。

    下圖顯示標準 SKU 的 [ 進階 ] 索引標籤。

    顯示標準 SKU 快取 [進階] 窗格的螢幕快照。

    這很重要

    盡可能使用 Microsoft Entra 識別碼搭配受管理的身分,以授權對快取的存取要求。 使用 Microsoft Entra ID 和受控識別的授權可提供更佳的安全性,而且比共用存取密鑰授權更容易使用。 如需搭配快取使用受控識別的詳細資訊,請參閱 使用 Microsoft Entra ID 進行快取驗證

  8. 或者,選取 [ 卷標] 索引標籤或選取 [ 下一步:標籤],然後輸入標籤名稱和值來分類快取資源。

  9. 選取 [檢閱 + 建立],一旦通過驗證,請選取 [ 建立]。

新的快取部署需要幾分鐘的時間。 您可以在入口網站 Azure Cache for Redis 頁面上監視部署進度。 當快取 狀態 顯示 [ 執行中] 時,快取即可供使用。

從 Azure 入口網站擷取主機名稱、連接埠和存取金鑰

若要連線 Azure Cache for Redis 伺服器,快取用戶端需要快取的主機名稱、連接埠和金鑰。 某些用戶端可能會以稍有不同的名稱來參考這些項目。 您可以從 Azure 入口網站取得主機名稱、連接埠和金鑰。

  • 若要取得快取的主機名和埠,請從 [資源] 功能表中選取 [概觀]。 主機名稱的格式 <DNS name>.redis.cache.windows.net為 。

    顯示 Azure Cache for Redis 屬性的螢幕快照。

  • 若要取得存取金鑰,請從 [資源] 功能選取 [驗證]。 然後,選取 [存取金鑰] 索引標籤。

    顯示 Azure Cache for Redis 存取金鑰的螢幕快照。

檢閱程式碼 (選用)

如果您想要了解程式碼的運作方式,可以檢閱下列程式碼片段。 或是,隨意直接跳到執行應用程式

開放原始碼 go-redis 程式庫可用來與 Azure Cache for Redis 互動。

main 函式會從讀取 Azure Cache for Redis 執行個體的主機名稱和密碼 (存取金鑰) 開始。

func main() {
    redisHost := os.Getenv("REDIS_HOST")
    redisPassword := os.Getenv("REDIS_PASSWORD")
...

然後,我們會建立與 Azure Cache for Redis 的連線。 我們使用 tls。Config--Azure Cache for Redis 只接受使用 [TLS 1.2 作為最低必要版本]/azure-cache-for-redis/cache-remove-tls-10-11.md 的安全連線。

...
op := &redis.Options{Addr: redisHost, Password: redisPassword, TLSConfig: &tls.Config{MinVersion: tls.VersionTLS12}}
client := redis.NewClient(op)

ctx := context.Background()
err := client.Ping(ctx).Err()
if err != nil {
    log.Fatalf("failed to connect with redis instance at %s - %v", redisHost, err)
}
...

如果連線成功,HTTP 處理常式會設定為處理 POSTGET 作業,且 HTTP 伺服器已啟動。

備註

gorilla mux 程式庫用於路由傳送 (雖然不是絕對必要,但我們可能已使用此範例應用程式的標準程式庫來避免)。

uh := userHandler{client: client}

router := mux.NewRouter()
router.HandleFunc("/users/", uh.createUser).Methods(http.MethodPost)
router.HandleFunc("/users/{userid}", uh.getUser).Methods(http.MethodGet)

log.Fatal(http.ListenAndServe(":8080", router))

userHandler 結構會封裝 redis.Client,其由 createUsergetUser 方法所使用 - 為了簡潔起見,尚未包含這些方法的程式碼。

  • createUser:接受 JSON 承載 (包含使用者資訊),並將其儲存為 Azure Cache for Redis 中的 HASH
  • getUser:從 HASH 擷取使用者資訊,如果找不到,則會傳回 HTTP 404 回應。
type userHandler struct {
    client *redis.Client
}
...

func (uh userHandler) createUser(rw http.ResponseWriter, r *http.Request) {
    // details omitted
}
...

func (uh userHandler) getUser(rw http.ResponseWriter, r *http.Request) {
    // details omitted
}

複製範例應用程式

從 GitHub 複製應用程式開始。

  1. 開啟命令提示字元,並建立名為 git-samples 的新資料夾。

    md "C:\git-samples"
    
  2. 開啟 Git 終端機視窗,例如 Git Bash。 使用 cd 命令變更至新資料夾,您會想在其中複製範例應用程式。

    cd "C:\git-samples"
    
  3. 執行下列命令來複製範例存放庫。 此命令會在您的電腦上建立範例應用程式副本。

    git clone https://github.com/Azure-Samples/azure-redis-cache-go-quickstart.git
    

執行應用程式

應用程式會以環境變數的形式接受連線能力和認證。

  1. Azure 入口網站中針對 Azure Cache for Redis 執行個體擷取主機名稱存取金鑰 (可透過存取金鑰取得)

  2. 將其設定為個別的環境變數:

    set REDIS_HOST=<Host name>:<port> (e.g. <name of cache>.redis.cache.windows.net:6380)
    set REDIS_PASSWORD=<Primary Access Key>
    
  3. 在終端機視窗中,變更為正確的資料夾。 例如:

    cd "C:\git-samples\azure-redis-cache-go-quickstart"
    
  4. 在終端機視窗中,執行下列命令以啟動應用程式。

    go run main.go
    

HTTP 伺服器將會在連接埠 8080 上啟動。

測試應用程式

  1. 建立幾個使用者項目。 下列範例會使用 curl:

    curl -i -X POST -d '{"id":"1","name":"foo1", "email":"foo1@baz.com"}' localhost:8080/users/
    curl -i -X POST -d '{"id":"2","name":"foo2", "email":"foo2@baz.com"}' localhost:8080/users/
    curl -i -X POST -d '{"id":"3","name":"foo3", "email":"foo3@baz.com"}' localhost:8080/users/
    
  2. 使用 id 擷取現有的使用者:

    curl -i localhost:8080/users/1
    

    您應會收到 JSON 回應,例如:

    {
        "email": "foo1@bar",
        "id": "1",
        "name": "foo1"
    }
    
  3. 如果您嘗試擷取不存在的使用者,那麼您會收到 HTTP 404。 例如:

    curl -i localhost:8080/users/100
    
    #response
    
    HTTP/1.1 404 Not Found
    Date: Fri, 08 Jan 2021 13:43:39 GMT
    Content-Length: 0
    

清理資源

如果您想要繼續使用在本文中建立的資源,請保留該資源群組。

否則,若已完成資源使用,則可刪除您建立的 Azure 資源群組,以避免衍生費用。

這很重要

刪除資源群組是無法回復的動作。 當您刪除資源群組時,其中包含的所有資源都將永久刪除。 請確定您不會不小心刪除錯誤的資源群組或資源。 如果您是在包含需保留資源的現有資源群組內部建立資源,則可以個別刪除每個資源,而不必刪除整個資源群組。

刪除資源群組

  1. 登入 Azure 入口網站,然後選取 [資源群組]

  2. 選取您想要刪除的資源群組。

    如果有許多資源群組,請使用 [篩選任何欄位] 方塊,並輸入您針對本文所建立資源群組的名稱。 選取結果清單中的資源群組。

    此螢幕擷取畫面顯示工作窗格中要刪除的資源群組清單。

  3. 選擇 ,刪除資源群組

  4. 系統將會要求您確認是否刪除資源群組。 輸入您的資源群組名稱以進行確認,然後選取 [刪除]

    此螢幕擷取畫面顯示需要資源名稱才能確認刪除的表單。

不久後,系統便會刪除該資源群組及其所有的資源。

後續步驟

在此快速入門中,您已了解如何開始使用 Go 搭配 Azure Cache for Redis。 您已設定並執行簡單的 REST API 應用程式,以建立並取得 Redis HASH 資料結構所支援的使用者資訊。