Importare ed esportare dati in Cache Redis di Azure

Usare la funzionalità di importazione ed esportazione in cache di Azure per Redis come operazione di gestione dei dati. È possibile importare dati nell'istanza della cache o esportare i dati da un'istanza della cache usando uno snapshot del database di cache di Azure per Redis (RDB). Gli snapshot vengono importati o esportati usando un BLOB in un account Archiviazione di Azure.

Importazione/Esportazione è supportato nei livelli Premium, Enterprise ed Enterprise Flash:

  • Esportazione: è possibile esportare gli snapshot RDB cache di Azure per Redis in un BLOB di pagine (livello Premium) o in UN BLOB in blocchi (livelli Enterprise).
  • Importare: è possibile importare gli snapshot RDB di Cache Redis da un BLOB di pagine o da un BLOB in blocchi.

È possibile usare Importazione/Esportazione per eseguire la migrazione tra istanze di cache di Azure per Redis diverse o popolare la cache con i dati prima dell'uso.

Questo articolo è una guida all'importazione e all'esportazione dei dati con Cache Redis di Azure e include le risposte alle domande più frequenti.

Ambito della disponibilità

Livello Basic e Standard Premium Enterprise, Enterprise Flash
Disponibile No

Compatibilità

  • I dati vengono esportati come BLOB di pagine RDB nel livello Premium . Nei livelli Enterprise ed Enterprise Flash i dati vengono esportati come BLOB in blocchi .gz.
  • Le cache che eseguono Redis 4.0 supportano RDB versione 8 e successive. Le cache che eseguono Redis 6.0 supportano RDB versione 9 e successive.
  • I backup esportati da versioni più recenti di Redis (ad esempio, Redis 6.0) non possono essere importati in versioni precedenti di Redis (ad esempio, Redis 4.0)
  • I file RDB delle cache di livello Premium possono essere importati nelle cache del livello Enterprise e Enterprise Flash .

Import

Usare l'importazione per portare file RDB compatibili con Redis da qualsiasi server Redis in esecuzione in qualsiasi ambiente o cloud, tra cui Redis in esecuzione in Linux, Windows o qualsiasi provider di servizi cloud, ad esempio Amazon Web Services e altri. L'importazione dei dati è un modo semplice per creare una cache con dati prepopolati. Durante il processo di importazione Cache Redis di Azure carica i file RDB dall'archiviazione di Azure nella memoria e quindi inserisce le chiavi nella cache.

Nota

Prima di avviare l'operazione di importazione, assicurarsi che il file o i file di database Redis (RDB) siano caricati nei BLOB di pagine o nei BLOB in blocchi in Archiviazione di Azure, nella stessa area e nella stessa sottoscrizione dell'istanza di Cache Redis di Azure. Se si usa l'identità gestita per l'autenticazione, l'account di archiviazione può trovarsi in una sottoscrizione diversa. Per altre informazioni, vedere Introduzione all'archivio BLOB di Azure. Se il file RDB è stato esportato con la funzionalità Esportazione di Cache Redis di Azure, è già archiviato in un BLOB di pagine ed è pronto per l'importazione.

Importante

Attualmente, l'importazione dal livello Redis Enterprise al livello Premium non è supportata.

  1. Per importare uno o più BLOB di cache esportati, passare alla cache nel portale di Azure e selezionare Importa dati dal menu Risorsa. Nel riquadro di lavoro viene visualizzato Scegliere i BLOB in cui è possibile trovare i file RDB.

    Screenshot che mostra l'opzione Importa dati selezionata nel menu Risorsa.

  2. Selezionare Scegli BLOB e selezionare l'account di archiviazione che contiene i dati da importare.

    Screenshot che mostra un elenco di account di archiviazione.

  3. Selezionare il contenitore che contiene i dati da importare.

    Screenshot che mostra l'elenco di contenitori dell'account di archiviazione scelto in precedenza.

  4. Selezionare uno o più BLOB da importare selezionando l'area a sinistra del nome del BLOB e quindi selezionare.

    Screenshot che mostra un BLOB dal contenitore.

  5. Selezionare Importa per avviare il processo di importazione.

    Importante

    Durante il processo di importazione la cache non è accessibile ai client della cache ed eventuali dati esistenti nella cache vengono eliminati.

    Screenshot che mostra il pulsante Importa per selezionare per avviare l'importazione.

    È possibile monitorare lo stato di avanzamento dell'operazione di importazione seguendo le notifiche del portale di Azure o visualizzando gli eventi nel log attività.

    Importante

    Il supporto del log attività non è ancora disponibile nei livelli Enterprise.

    Screenshot che mostra lo stato di avanzamento dell'importazione nell'area delle notifiche.

Esportazione

L'esportazione consente di esportare i dati archiviati in Cache Redis in file RDB compatibili con Redis. È possibile usare questa funzionalità per spostare i dati da un'istanza di Cache Redis di Azure a un'altra o su un altro server Redis. Durante il processo di esportazione, viene creato un file temporaneo nella macchina virtuale che ospita l'istanza del server cache di Azure per Redis. Il file viene quindi caricato nell'account di archiviazione scelto. Quando l'operazione di esportazione viene completata con esito positivo o negativo, il file temporaneo viene eliminato.

  1. Per esportare il contenuto corrente della cache nella risorsa di archiviazione, passare alla cache nel portale di Azure e selezionare Esporta dati dal menu Risorsa. Nel riquadro di lavoro viene visualizzato Scegliere Archiviazione contenitore.

    Screenshot che mostra l'opzione Esporta dati selezionata nel menu Risorsa

  2. Selezionare Scegliere Archiviazione Contenitore e visualizzare un elenco degli account di archiviazione disponibili. Selezionare l'account di archiviazione desiderato. L'account di archiviazione deve trovarsi nella stessa area della cache. Se si usa l'identità gestita per l'autenticazione, l'account di archiviazione può trovarsi in una sottoscrizione diversa. In caso contrario, l'account di archiviazione deve trovarsi nella stessa sottoscrizione della cache.

    Importante

    • L'esportazione funziona con i BLOB di pagine supportati sia dagli account di archiviazione classici che da quello di Resource Manager.
    • cache di Azure per Redis non supporta l'esportazione negli account di archiviazione di ADLS Gen2.
    • L'esportazione non è supportata dagli account di archiviazione BLOB al momento.
    • Se l'esportazione dei dati della cache in account di archiviazione abilitati per il firewall ha esito negativo, fare riferimento a Cosa accade se è abilitato il firewall nell'account di archiviazione?

    Per altre informazioni, vedere Panoramica dell'account di archiviazione di Azure.

    Screenshot che mostra un elenco di contenitori nel riquadro di lavoro.

  3. Scegliere il contenitore di archiviazione che si vuole contenere l'esportazione e quindi selezionare. Se si vuole un nuovo contenitore, selezionare Aggiungi contenitore per aggiungerlo prima e quindi selezionarlo nell'elenco.

    Screenshot di un elenco di contenitori con uno evidenziato e un pulsante di selezione.

  4. Digitare un prefisso del nome BLOB e selezionare Esporta per avviare il processo di esportazione. Il prefisso del nome BLOB viene usato per i nomi dei file generati da questa operazione di esportazione.

    Screenshot che mostra il prefisso di un nome BLOB e un pulsante Esporta.

    È possibile controllare lo stato dell'operazione di esportazione seguendo le notifiche del portale di Azure oppure visualizzando gli eventi nel log di controllo.

    Screenshot che mostra lo stato di avanzamento dell'esportazione nell'area delle notifiche.

    Durante il processo di esportazione le cache rimangono disponibili per l'uso.

Domande frequenti su Importazione/Esportazione

Questa sezione contiene le domande frequenti relative alla funzionalità Importazione/Esportazione.

Quali livelli supportano Importazione/Esportazione?

Le funzionalità di importazione ed esportazione sono disponibili solo nei livelli Premium, Enterprise ed Enterprise Flash .

È possibile importare dati da qualsiasi server Redis?

Sì, è possibile importare dati esportati da istanze di cache di Azure per Redis. È possibile importare file RDB da qualsiasi server Redis in esecuzione in qualsiasi cloud o ambiente. Gli ambienti includono Linux, Windows o provider di servizi cloud, ad esempio Amazon Web Services. Per importare questi dati, caricare il file RDB dal server Redis desiderato in un BLOB di pagine o blocchi in un account Archiviazione di Azure. Importarlo quindi nell'istanza di cache di Azure per Redis Premium.

Può, ad esempio, essere necessario:

  1. Esportare i dati dalla cache di produzione.

  2. Importarlo quindi in una cache usata come parte di un ambiente di staging per il test o la migrazione.

Importante

Per importare i dati esportati da server Redis diversi da Cache Redis di Azure quando si usa un BLOB di pagine, la dimensione del BLOB di pagine deve essere allineata a un limite di 512 byte. Per un codice di esempio che esegua il riempimento di byte richiesto, vedere SamplePageBlobUpload (Caricamento di BLOB di pagine di esempio).

Quali versioni RDB è possibile importare?

Per altre informazioni sulle versioni di RDB supportate usate con l'importazione, vedere la sezione relativa alla compatibilità.

La cache è disponibile durante un'operazione di Importazione/Esportazione?

  • Esportazione : durante un'operazione di esportazione le cache rimangono disponibili ed è possibile continuare a usarle.
  • Importazione : quando si avvia un'operazione di importazione le cache non sono più disponibili, ma tornano disponibili al termine dell'operazione.

È possibile usare Importazione/Esportazione con il cluster Redis?

Sì ed è possibile importare/esportare tra una cache cluster e una cache non cluster. Poiché il cluster Redis supporta solo database 0, i dati nei database diversi da 0 non verranno importati. Quando si importano dati della cache di cluster, le chiavi vengono ridistribuite tra le partizioni del cluster.

Come funziona Importazione/Esportazione con un'impostazione databases personalizzata?

Alcuni piani tariffari hanno limiti di database diversi, quindi esistono alcune considerazioni da tenere presente durante l'importazione se si è configurato un valore personalizzato per l'impostazione databases durante la creazione della cache.

  • Quando si esegue l'importazione in un piano tariffario con un limite inferiore databases al livello da cui è stato esportato:
    • Se si usa il numero predefinito di databases, ovvero 16 per tutti i piani tariffari, non vengono persi dati.
    • Se si usa un numero personalizzato di databases che rientra nei limiti per il livello a cui si sta importando, non vengono persi dati.
    • Se vengono esportati dati contenuti in un database che supera i limiti del nuovo livello, i dati di tali database superiori non vengono importati.

Quali sono le differenze tra la funzionalità Importazione/Esportazione e la persistenza di Redis?

La funzionalità di persistenza cache di Azure per Redis è principalmente una funzionalità di durabilità dei dati. Al contrario, la funzionalità di importazione/esportazione è progettata come metodo per eseguire backup periodici dei dati per il ripristino temporizzato.

Quando la persistenza è configurata, la cache mantiene uno snapshot dei dati su disco, in base a una frequenza di backup configurabile. I dati sono scritti con un formato binario proprietario di Redis. Se si verifica un evento irreversibile che disabilita sia la cache primaria che quella di replica, i dati della cache vengono ripristinati automaticamente usando lo snapshot più recente.

La persistenza dei dati è progettata per il ripristino di emergenza. Non è destinato a un meccanismo di recupero temporizzato.

  • Nel livello Premium, il file di persistenza dei dati viene archiviato in Archiviazione di Azure, ma il file non può essere importato in una cache diversa.
  • Nei livelli Enterprise il file di persistenza dei dati viene archiviato in un disco montato che non è accessibile dall'utente.

Per eseguire backup periodici dei dati per il ripristino temporizzato, è consigliabile usare la funzionalità di importazione/esportazione . Per altre informazioni, vedere Come configurare la persistenza dei dati per cache di Azure per Redis.

È possibile automatizzare la funzionalità Importazione/Esportazione con PowerShell, l'interfaccia della riga di comando o altri client di gestione?

Sì, vedere le istruzioni seguenti per il livello Premium :

Per i livelli Enterprise ed Enterprise Flash :

Durante l'operazione di Importazione/Esportazione è stato ricevuto un errore di timeout. Significato

A sinistra, se si rimane in Importa dati o Esporta dati per più di 15 minuti prima di avviare l'operazione, viene visualizzato un errore con un messaggio di errore simile all'esempio seguente:

The request to import data into cache 'contoso55' failed with status 'error' and error 'One of the SAS URIs provided could not be used for the following reason: The SAS token end time (se) must be at least 1 hour from now and the start time (st), if given, must be at least 15 minutes in the past.

Per risolvere questo errore, avviare l'operazione di importazione o esportazione prima della scadenza di 15 minuti.

Durante l'esportazione dei dati nell'archivio BLOB di Azure è stato visualizzato un errore. Che cosa è successo?

L'esportazione funziona solo con i file RDB archiviati come BLOB di pagine. Altri tipi di BLOB non sono attualmente supportati, inclusi gli account di archiviazione BLOB con livelli ad accesso frequente e sporadico. Per altre informazioni, vedere Panoramica dell'account di archiviazione di Azure. Se si usa una chiave di accesso per autenticare un account di archiviazione, la presenza di eccezioni del firewall nell'account di archiviazione tende a causare l'esito negativo del processo di importazione/esportazione.

Cosa accade se è abilitato il firewall nell'account di archiviazione?

Se si usa un'istanza di livello Premium , è necessario selezionare "Consenti ai servizi di Azure nell'elenco dei servizi attendibili di accedere a questo account di archiviazione" nelle impostazioni dell'account di archiviazione. Usare quindi l'identità gestita (assegnata dal sistema o l'utente) e effettuare il provisioning Archiviazione ruolo Controllo degli accessi in base al ruolo Collaboratore dati BLOB per tale ID oggetto.

Per altre informazioni, vedere Identità gestita per gli account di archiviazione - cache di Azure per Redis

Le istanze Enterprise e Enterprise Flash non supportano l'importazione o l'esportazione di dati in account di archiviazione che usano firewall o endpoint privati. L'account di archiviazione deve avere accesso alla rete pubblica.

È possibile importare o esportare dati da un account di archiviazione in una sottoscrizione diversa dalla cache?

Nel livello Premium è possibile importare ed esportare dati da un account di archiviazione in una sottoscrizione diversa rispetto alla cache, ma è necessario usare l'identità gestita come metodo di autenticazione. È necessario selezionare la sottoscrizione scelta che contiene l'account di archiviazione durante la configurazione dell'importazione o dell'esportazione.

Quali autorizzazioni devono essere concesse al token di firma di accesso condiviso (SAS) del contenitore dell'account di archiviazione per consentire l'esportazione?

Affinché l'esportazione in un account di archiviazione di Azure funzioni correttamente, il token di firma di accesso condiviso deve avere le autorizzazioni seguenti:

  • read
  • add
  • create
  • write
  • delete
  • tag
  • move

Passaggi successivi

Altre informazioni sulle funzionalità della cache di Azure per Redis.