Come usare Cache Redis di Azure con PythonHow to use Azure Redis Cache with Python

Questo argomento descrive come usare Cache Redis di Azure con Python.This topic shows you how to get started with Azure Redis Cache using Python.

PrerequisitiPrerequisites

Installare redis-py.Install redis-py.

Creare una cache Redis in AzureCreate a Redis cache on Azure

Per creare una cache, accedere al portale di Azure e fare clic su Nuovo > Database > Cache Redis.To create a cache, first sign in to the Azure portal, and click New > Databases > Redis Cache.

Nota

Se non si ha un account Azure, è possibile creare un account Azure gratuito in pochi minuti.If you don't have an Azure account, you can Open an Azure account for free in just a couple of minutes.

New cache

Nota

Oltre a creare cache nel portale di Azure, è possibile crearle usando modelli di Resource Manager, PowerShell o l'interfaccia della riga di comando di Azure.In addition to creating caches in the Azure portal, you can also create them using Resource Manager templates, PowerShell, or Azure CLI.

Nel pannello Nuova cache Redis specificare la configurazione desiderata per la cache.In the New Redis Cache blade, specify the desired configuration for the cache.

Create cache

  • In Nome DNSimmettere il nome univoco di una cache da usare per l'endpoint della cache.In Dns name, enter a unique cache name to use for the cache endpoint. Il nome della cache deve essere una stringa contenente da 1 a 63 caratteri che possono includere solo numeri, lettere e il carattere - .The cache name must be a string between 1 and 63 characters and contain only numbers, letters, and the - character. Il nome della cache non può iniziare o terminare con il carattere - e i caratteri - consecutivi non sono validi.The cache name cannot start or end with the - character, and consecutive - characters are not valid.
  • Per Sottoscrizioneselezionare la sottoscrizione di Azure da usare per la cache.For Subscription, select the Azure subscription that you want to use for the cache. Se l'account ha una sola sottoscrizione, questa verrà selezionata automaticamente e l'elenco a discesa Sottoscrizione non verrà visualizzato.If your account has only one subscription, it will be automatically selected and the Subscription drop-down will not be displayed.
  • In Gruppo di risorseselezionare o creare un gruppo di risorse per la cache.In Resource group, select or create a resource group for your cache. Per altre informazioni, vedere Uso di gruppi di risorse per gestire le risorse di Azure.For more information, see Using Resource groups to manage your Azure resources.
  • Usare Posizione per specificare la posizione geografica in cui viene ospitata la cache.Use Location to specify the geographic location in which your cache is hosted. Per prestazioni ottimali, è consigliabile creare la cache nella stessa area dell'applicazione client della cache.For the best performance, Microsoft strongly recommends that you create the cache in the same region as the cache client application.
  • Usare Piano tariffario per selezionare le dimensioni e le funzionalità desiderate per la cache.Use Pricing tier to select the desired cache size and features.
  • cluster Redis consente di creare cache con dimensioni maggiori di 53 GB e di partizionare i dati su più nodi Redis.Redis cluster allows you to create caches larger than 53 GB and to shard data across multiple Redis nodes. Per altre informazioni, vedere Come configurare il clustering per una Cache Redis di Azure Premium.For more information, see How to configure clustering for a Premium Azure Redis Cache.
  • Persistenza Redis consente di rendere la cache persistente in un account di archiviazione di Azure.Redis persistence offers the ability to persist your cache to an Azure Storage account. Per istruzioni su come configurare la persistenza, vedere Come configurare la persistenza per una Cache Redis di Azure Premium.For instructions on configuring persistence, see How to configure persistence for a Premium Azure Redis Cache.
  • Rete virtuale fornisce isolamento e protezione avanzati limitando l'accesso alla cache ai soli client che si trovano all'interno della rete virtuale di Azure specificata.Virtual Network provides enhanced security and isolation by restricting access to your cache to only those clients within the specified Azure Virtual Network. È possibile utilizzare tutte le funzionalità di rete virtuale, ad esempio subnet, i criteri di controllo di accesso e altre funzionalità per limitare ulteriormente l'accesso a Redis.You can use all the features of VNet such as subnets, access control policies, and other features to further restrict access to Redis. Per altre informazioni, vedere Come configurare il supporto di una rete virtuale per una Cache Redis di Azure Premium.For more information, see How to configure Virtual Network support for a Premium Azure Redis Cache.
  • Per le nuove cache la porta senza SSL è disabilitata per impostazione predefinita.By default, non-SSL access is disabled for new caches. Per abilitare la porta non SSL, selezionare Sblocca la porta 6379 (senza crittografia SSL).To enable the non-SSL port, check Unblock port 6379 (not SSL encrypted).

Dopo aver configurato le opzioni della nuova cache, fare clic su Crea.Once the new cache options are configured, click Create. La creazione della cache può richiedere alcuni minuti.It can take a few minutes for the cache to be created. Per verificare lo stato, è possibile monitorare l'avanzamento nella Schermata iniziale.To check the status, you can monitor the progress on the startboard. Lo stato della cache dopo la creazione sarà In esecuzione e sarà possibile usarla subito con le impostazioni predefinite.After the cache has been created, your new cache has a Running status and is ready for use with default settings.

Cache created

Recuperare il nome host e le chiavi di accessoRetrieve the host name and access keys

Per connettersi a un'istanza Cache Redis di Azure, è necessario specificare il nome host, le porte e le chiavi della cache.To connect to an Azure Redis Cache instance, cache clients need the host name, ports, and keys of the cache. Alcuni client possono fare riferimento a questi elementi usando nomi leggermente diversi.Some clients may refer to these items by slightly different names. È possibile recuperare queste informazioni nel portale di Azure o usando strumenti da riga di comando come l'interfaccia della riga di comando di Azure.You can retrieve this information in the Azure portal or by using command-line tools such as Azure CLI.

Recuperare il nome dell'host, le porte e le chiavi di accesso usando il portale di AzureRetrieve host name, ports, and access keys using the Azure Portal

Per recuperare il nome dell'host, le porte e le chiavi di accesso usando il portale di Azure, passare alla cache nel portale di Azure e scegliere Chiavi di accesso e Proprietà dal menu Risorsa.To retrieve host name, ports, and access keys using the Azure Portal, browse to your cache in the Azure portal and click Access keys and Properties in the Resource menu.

Impostazioni della Cache Redis

Recuperare il nome dell'host, le porte e le chiavi di accesso usando l'interfaccia della riga di comando di AzureRetrieve host name, ports, and access keys using Azure CLI

Per recuperare il nome dell'host e le porte usando l'interfaccia della riga di comando di Azure 2.0, è possibile chiamare az redis show e per recuperare le chiavi è possibile chiamare az redis list-keys.To retrieve the host name and ports using Azure CLI 2.0 you can call az redis show, and to retrieve the keys you can call az redis list-keys. Lo script seguente chiama questi due comandi e restituisce il nome dell'host, le porte e le chiavi alla console.The following script calls these two commands and echos the hostname, ports, and keys to the console.

#/bin/bash

# Retrieve the hostname, ports, and keys for contosoCache located in contosoGroup

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

# Retrieve the keys for an Azure Redis Cache instance
keys=($(az redis list-keys --name contosoCache --resource-group contosoGroup --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]}

Per altre informazioni su questo script, vedere Get the hostname, ports, and keys for Azure Redis Cache (Recuperare il nome dell'host, le porte e le chiavi per Cache Redis di Azure).For more information about this script, see Get the hostname, ports, and keys for Azure Redis Cache. Per altre informazioni sull'interfaccia della riga di comando di Azure 2.0, vedere Install Azure CLI 2.0 (Installare l'interfaccia della riga di comando di Azure 2.0) e Get started with Azure CLI 2.0 (Introduzione all'interfaccia della riga di comando di Azure 2.0).For more information on Azure CLI 2.0, see Install Azure CLI 2.0 and Get started with Azure CLI 2.0.

Abilitare l'endpoint non SSLEnable the non-SSL endpoint

Alcuni client Redis non supportano SSL e per impostazione predefinita la porta non SSL è disabilitata per le nuove istanze della cache Redis di Azure.Some Redis clients don't support SSL, and by default the non-SSL port is disabled for new Azure Redis Cache instances. Al momento della stesura di questo articolo, il client redis-py non supporta SSL.At the time of this writing, the redis-py client doesn't support SSL.

Per abilitare la porta non SSL, accedere alla cache nel portale di Azure e fare clic su Impostazioni avanzate.To enable the non-SSL port, browse to your cache in the Azure portal and click Advanced settings. Fare clic su No per Consenti l'accesso solo tramite SSL nel pannello Impostazioni avanzate e quindi fare clic su Salva.Click No for Allow access only via SSL on the Advanced settings blade and then click Save.

Impostazioni della Cache Redis

Aggiungere dati alla cache e recuperarliAdd something to the cache and retrieve it

>>> import redis
>>> r = redis.StrictRedis(host='<name>.redis.cache.windows.net',
      port=6380, db=0, password='<key>', ssl=True)
>>> r.set('foo', 'bar')
True
>>> r.get('foo')
b'bar'

Sostituire <name> con il nome della cache e key con la chiave di accesso.Replace <name> with your cache name and key with your access key.