Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto článku se dozvíte, jak používat azure Redis Cache s jazykem Go a jak se připojit pomocí Microsoft Entra ID.
Požadavky
- Předplatné Azure – vytvoření bezplatného předplatného
- Instalace jazykového prostředí Go
- Přidání dvou importů z Redis do projektu a do vývojového prostředí
entraid "github.com/redis/go-redis-entraid""github.com/redis/go-redis/v9"
Vytvoření instance Azure Managed Redis
Nejprve vytvořte mezipaměť. Mezipaměť můžete vytvořit pomocí Azure Managed Redis nebo Azure Cache for Redis pomocí webu Azure Portal. V tomto rychlém startu používáme Azure Managed Redis.
Při vytváření mezipaměti je Microsoft Entra ID ve výchozím nastavení povoleno, což zajistí zabezpečení od samého začátku. Vaše mezipaměť musí také pro účely tohoto rychlého startu používat veřejný koncový bod.
Pokud chcete vytvořit mezipaměť pomocí portálu, postupujte podle jednoho z těchto postupů:
Volitelně můžete vytvořit mezipaměť pomocí Azure CLI, PowerShellu, podle toho, co dáváte přednost.
Kód pro připojení k mezipaměti Redis
V první části ukázky kódu nastavte připojení k mezipaměti:
package main
import (
"context"
"crypto/tls"
"fmt"
"log"
"time"
entraid "github.com/redis/go-redis-entraid"
"github.com/redis/go-redis/v9"
)
func main() {
ctx := context.Background()
// Set your Redis endpoint (hostname:port) from the cache you created.
redisHost := "<host >:<public port number>"
// Create a credentials provider using DefaultAzureCredential
provider, err := entraid.NewDefaultAzureCredentialsProvider(entraid.DefaultAzureCredentialsProviderOptions{})
if err != nil {
log.Fatalf("Failed to create credentials provider: %v", err)
}
// Create Redis client with Entra ID authentication
client := redis.NewClient(&redis.Options{
Addr: redisHost,
TLSConfig: &tls.Config{MinVersion: tls.VersionTLS12},
WriteTimeout: 5 * time.Second,
StreamingCredentialsProvider: provider,
})
defer client.Close()
Kód pro otestování připojení
V následující části otestujte připojení pomocí příkazu Redis ping, který vrátí řetězec pong.
// Ping the Redis server to test the connection
pong, err := client.Ping(ctx).Result()
if err != nil {
log.Fatal("Failed to connect to Redis:", err)
}
fmt.Println("Ping returned: ", pong)
Nastavit klíč, získat klíč
V této části použijte základní set a get posloupnost, abyste mohli začít používat mezipaměť Redis nejjednodušším způsobem.
// Do something with Redis and a key-value pair
result, err := client.Set(ctx, "Message", "Hello, The cache is working with Go!", 0).Result()
if err != nil {
log.Fatal("SET Message failed:", err)
}
fmt.Println("SET Message succeeded:", result)
value, err := client.Get(ctx, "Message").Result()
if err != nil {
if err == redis.Nil {
fmt.Println("GET Message returned: key does not exist")
} else {
log.Fatal("GET Message failed:", err)
}
} else {
fmt.Println("GET Message returned:", value)
}
}
Abyste mohli tento kód spustit, musíte se přidat jako uživatel Redis.
Připojení k Azure musíte také autorizovat z příkazového řádku pomocí příkazového řádku Azure nebo příkazového řádku Azure developer (azd).
Do mezipaměti byste měli také přidat uživatele nebo hlavní objekt systému. Přidejte každého, kdo může program spustit jako uživatele v mezipaměti Redis.
Výsledek vypadá takto:
Ping returned: PONG
SET Message succeeded: OK
GET Message returned: Hello, The cache is working with Go!
Tady vidíte tuto ukázku kódu v celém rozsahu.
package main
import (
"context"
"crypto/tls"
"fmt"
"log"
"time"
entraid "github.com/redis/go-redis-entraid"
"github.com/redis/go-redis/v9"
)
func main() {
ctx := context.Background()
// Set your Redis host (hostname:port)
redisHost := "<host >:<public port number>"
// Create a credentials provider using DefaultAzureCredential
provider, err := entraid.NewDefaultAzureCredentialsProvider(entraid.DefaultAzureCredentialsProviderOptions{})
if err != nil {
log.Fatalf("Failed to create credentials provider: %v", err)
}
// Create Redis client with Entra ID authentication
client := redis.NewClient(&redis.Options{
Addr: redisHost,
TLSConfig: &tls.Config{MinVersion: tls.VersionTLS12},
WriteTimeout: 5 * time.Second,
StreamingCredentialsProvider: provider,
})
defer client.Close()
// Ping the Redis server to test the connection
pong, err := client.Ping(ctx).Result()
if err != nil {
log.Fatal("Failed to connect to Redis:", err)
}
fmt.Println("Ping returned: ", pong)
// Do something with Redis and a key-value pair
result, err := client.Set(ctx, "Message", "Hello, The cache is working with Go!", 0).Result()
if err != nil {
log.Fatal("SET Message failed:", err)
}
fmt.Println("SET Message succeeded:", result)
value, err := client.Get(ctx, "Message").Result()
if err != nil {
if err == redis.Nil {
fmt.Println("GET Message returned: key does not exist")
} else {
log.Fatal("GET Message failed:", err)
}
} else {
fmt.Println("GET Message returned:", value)
}
}
Vyčistěte zdroje
Pokud chcete dál používat prostředky, které jste vytvořili v tomto článku, ponechte skupinu prostředků.
Jinak pokud jste s prostředky hotovi, můžete odstranit skupinu prostředků Azure, kterou jste vytvořili, abyste se vyhnuli poplatkům.
Důležité
Odstranění skupiny prostředků je nevratné. Při odstranění skupiny prostředků se všechny prostředky, které obsahuje, trvale odstraní. Ujistěte se, že nechtěně neodstraníte nesprávnou skupinu prostředků nebo jednotlivé prostředky. Pokud jste prostředky vytvořili v existující skupině prostředků, která obsahuje prostředky, které chcete zachovat, můžete každý prostředek odstranit jednotlivě místo odstranění skupiny prostředků.
Odstranit skupinu prostředků
Přihlaste se k portálu Azure Portal a potom vyberte Skupiny prostředků.
Vyberte skupinu prostředků, kterou chcete odstranit.
Pokud existuje mnoho skupin prostředků, použijte filtr pro jakékoli pole... zadejte název skupiny prostředků, kterou jste vytvořili pro tento článek. V seznamu výsledků vyberte skupinu prostředků.
Vyberte odstranit skupinu zdrojů.
Zobrazí se výzva k potvrzení odstranění skupiny prostředků. Zadejte název vaší skupiny prostředků pro potvrzení a poté vyberte Odstranit.
Po chvíli se skupina prostředků včetně všech prostředků, které obsahuje, odstraní.