使用 Azure CLI 管理 Azure Redis 缓存

本文介绍如何使用 Azure CLI 创建和删除 Azure Redis 缓存实例。 本文还介绍如何使用 Azure CLI 获取缓存详细信息,包括预配状态、主机名、端口和密钥。

先决条件

  • 如果没有 Azure 帐户,请在开始前创建一个免费帐户
  • 请确保已使用您希望在其中创建缓存的订阅登录到 Azure。 要使用登录时所用订阅以外的订阅,请运行 az account set -s <subscriptionId>,并将 <subscriptionId> 替换为要使用的订阅 ID。

注释

Azure 托管 Redis 使用 Azure CLI az redisenterprise 命令。 首次运行 redisenterprise 命令时,Azure CLI 版本 2.61.0 或更高版本的 az redisenterprise 扩展会提示你进行安装。

Azure Redis 缓存使用 az redisenterprise 适用于企业层的命令和用于基本、标准和高级层的 az redis 命令。 可以使用以下脚本创建和管理 Azure 托管 Redis 或 Azure Redis Enterprise 缓存。 对于 Azure Redis 缓存基本、标准和高级版,请使用 Azure Redis 缓存 脚本。

创建 Azure 托管 Redis 缓存

若要使用 Azure CLI 创建 Azure 托管 Redis 缓存,需要name___locationresourceGroupsku参数。 其他参数是可选的,并且具有默认值。

可以使用本部分中的 Azure CLI 脚本创建具有默认设置的 Azure 托管 Redis 缓存。 还可以使用以下其他方法创建缓存:

缓存 name 必须是在 Azure 区域中唯一的 1-63 个字符的字符串。 名称只能包含数字、字母和连字符,必须以数字或字母开头和结尾,并且不能包含连续连字符。

___location应是靠近使用缓存的其他服务的 Azure 区域。

选择一个具有适合缓存特点和性能的 SKU

默认情况下,Microsoft Entra 身份验证功能已为所有新缓存启用,建议使用以增强安全性。

重要

将 Microsoft Entra ID 与托管标识一起使用,以授权针对缓存的请求(如果可能)。 使用 Microsoft Entra ID 和托管标识的授权可提供更好的安全性,并且比共享访问密钥授权更容易使用。 有关将托管标识与缓存配合使用的详细信息,请参阅 使用 Microsoft Entra 通过 Azure 托管 Redis 进行缓存身份验证

默认情况下为所有新缓存启用传输层安全性 (TLS) 1.2-1.3 加密。 可以在创建缓存期间或之后启用非 TLS 端口和连接,但出于安全原因,不建议禁用 TLS。

以下脚本设置变量,然后使用 az group createaz redisenterprise create 命令创建 包含 Azure 托管 Redis 均衡 B1 SKU 缓存的资源组。


# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
___location="East US"
resourceGroup="redis-cache-rg-$randomIdentifier"
tag="create-manage-cache"
cache="redis-cache-$randomIdentifier"
sku="Balanced_B1"

# Create a resource group
echo "Creating $resourceGroup in "$___location"..."
az group create --resource-group $resourceGroup --___location "$___location" --tags $tag

# Create a Balanced B1 Azure Managed Redis cache
echo "Creating $cache"
az redisenterprise create --name $cache --resource-group $resourceGroup --___location "$___location" --sku $sku

获取 Azure 托管 Redis 缓存的详细信息

以下脚本使用 az redisenterprise showaz redisenterprise database list-keys 命令来获取和显示上述缓存的名称、主机名、端口和密钥详细信息。

重要

仅当为缓存启用访问密钥时,该 list-keys 作才有效。 此命令的输出可能会通过显示机密来损害安全性,并可能会触发敏感信息警告。 有关详细信息,请参阅 使用 Azure CLI 管理敏感信息

# Get details of an Azure Managed Redis cache
echo "Showing details of $cache"
az redisenterprise show --name "$cache" --resource-group $resourceGroup 

# Retrieve the hostname and ports for an Azure Redis Cache instance
redis=($(az redisenterprise show --name "$cache" --resource-group $resourceGroup --query [hostName,enableNonSslPort,port,sslPort] --output tsv))

# Retrieve the keys for an Azure Redis Cache instance
keys=($(az redisenterprise database list-keys --cluster-name "$cache" --resource-group $resourceGroup --query [primaryKey,secondaryKey] --output tsv))

# Display the retrieved hostname, keys, and ports
echo "Hostname:" ${redis[0]}
echo "Non SSL Port:" ${redis[2]}
echo "Non SSL Port Enabled:" ${redis[1]}
echo "SSL Port:" ${redis[3]}
echo "Primary Key:" ${keys[0]}
echo "Secondary Key:" ${keys[1]}

清理资源

以下脚本使用 az group deleteaz redisenterprise delete 命令删除前面的缓存,然后删除其资源组。

# Delete a redis cache
echo "Deleting $cache"
az redisenterprise delete --name "$cache" --resource-group $resourceGroup -y

# echo "Deleting all resources"
az group delete --resource-group $resourceGroup -y

重要

使用这些脚本通过 Azure CLI az redis 命令创建和管理 Azure Cache for Redis 基本、标准和高级层。

Azure Cache for Redis 企业层和 Azure 托管 Redis 使用 az redisenterprise 命令。 首次运行 redisenterprise 命令时,Azure CLI 版本 2.61.0 或更高版本的 az redisenterprise 扩展会提示你进行安装。

若要创建和管理 Azure Cache for Redis 企业层缓存,请使用 Azure 托管 Redis 脚本。

创建 Azure Cache for Redis 缓存

可以使用以下 Azure CLI 脚本创建 Azure Cache for Redis 基本层、标准层或高级层缓存。 若要创建和管理 Azure Cache for Redis 企业层缓存,请使用 Azure 托管 Redis 脚本。

若要使用 Azure CLI 创建 Azure Cache for Redis 基本、标准或高级缓存, 需要 name___locationresourceGroupskusize 参数。 其他参数是可选的,并且具有默认值。

可以使用本部分中的 Azure CLI 脚本以默认设置创建 Azure Cache for Redis 基本缓存。 还可以使用以下其他方法创建缓存:

缓存 name 必须是在 Azure 区域中唯一的 1-63 个字符的字符串。 名称只能包含数字、字母和连字符,必须以数字或字母开头和结尾,并且不能包含连续连字符。

___location应是靠近使用缓存的其他服务的 Azure 区域。

选择合适功能和性能的 SKUsize,以满足您的缓存需求。

默认情况下为所有新缓存启用传输层安全性 (TLS) 1.2-1.3 加密。 可以在创建缓存期间或之后启用非 TLS 端口和连接,但出于安全原因,不建议禁用 TLS。

重要

推荐使用Microsoft Entra认证提高安全性。 可以在创建缓存期间或之后启用Microsoft Entra 身份验证。

将 Microsoft Entra ID 与托管标识一起使用,以授权针对缓存的请求(如果可能)。 使用 Microsoft Entra ID 和托管标识的授权可提供更好的安全性,并且比共享访问密钥授权更容易使用。 若要详细了解如何将托管标识与缓存配合使用,请参阅使用 Microsoft Entra ID 进行缓存身份验证

以下脚本使用 az group createaz redis create 命令创建包含 Azure Redis 缓存的基本 C0 缓存的资源组。


# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
___location="East US"
resourceGroup="redis-cache-rg-$randomIdentifier"
tag="create-manage-cache"
cache="redis-cache-$randomIdentifier"
sku="basic"
size="C0"

# Create a resource group
echo "Creating $resourceGroup in "$___location"..."
az group create --resource-group $resourceGroup --___location "$___location" --tags $tag

# Create a Basic C0 (256 MB) Azure Redis cache
echo "Creating $cache"
az redis create --name $cache --resource-group $resourceGroup --___location "$___location" --sku $sku --vm-size $size

获取 Azure Cache for Redis 缓存的详细信息

以下脚本使用 az redis showaz redis list-keys 命令来获取和显示上述缓存的名称、主机名、端口和密钥详细信息。

重要

仅当为缓存启用访问密钥时,该 list-keys 作才有效。 此命令的输出可能会通过显示机密来损害安全性,并可能会触发敏感信息警告。 有关详细信息,请参阅 使用 Azure CLI 管理敏感信息


# Get details of an Azure Cache for Redis cache
echo "Showing details of $cache"
az redis show --name "$cache" --resource-group $resourceGroup

# Retrieve the hostname and ports for an Azure Redis instance
redis=($(az redis show --name "$cache" --resource-group $resourceGroup --query [hostName,enableNonSslPort,port,sslPort] --output tsv))

# Retrieve the keys for an Azure Redis instance
keys=($(az redis list-keys --name "$cache" --resource-group $resourceGroup --query [primaryKey,secondaryKey] --output tsv))

# Display the retrieved hostname, keys, and ports
echo "Hostname:" ${redis[0]}
echo "Non SSL Port:" ${redis[2]}
echo "Non SSL Port Enabled:" ${redis[1]}
echo "SSL Port:" ${redis[3]}
echo "Primary Key:" ${keys[0]}
echo "Secondary Key:" ${keys[1]}

清理资源

以下脚本使用 az group deleteaz redis delete 命令删除前面的缓存,然后删除其资源组。

# Delete an Azure Redis cache
echo "Deleting $cache"
az redis delete --name "$cache" --resource-group $resourceGroup -y

# echo "Deleting all resources"
az group delete --resource-group $resourceGroup -y