Configurar a Cache do Azure para Redis

Concluído

É possível criar uma cache de Redis através do portal do Azure, da CLI do Azure ou do Azure PowerShell.

Criar e configurar uma instância de Cache do Azure para Redis

Existem vários parâmetros que precisa de decidir para configurar a cache corretamente para os seus fins.

Name

A cache de Redis precisa de um nome globalmente exclusivo. O nome tem de ser exclusivo no Azure porque é utilizado para gerar um URL destinado ao público para se ligar e comunicar com o serviço.

O nome tem de ter entre 1 e 63 carateres, composto de números, letras e do caráter “-”. O nome da cache não pode começar nem terminar com o caráter “-” e os carateres “-” consecutivos não são válidos.

Localização

Deve colocar sempre a instância de cache e a aplicação na mesma região. Estabelecer ligação a uma cache numa região diferente pode aumentar significativamente a latência e reduzir a fiabilidade. Se estiver a ligar-se à cache fora do Azure, selecione uma localização próxima do local onde a aplicação que está a consumir os dados está em execução.

Tipo de cache

O escalão determina o tamanho, o desempenho e as funcionalidades que estão disponíveis para a cache. Para obter mais informações, visite Cache do Azure para Redis preços.

Dica

A Microsoft recomenda que utilize sempre o escalão Standard ou superior para sistemas de produção. O escalão Básico é um sistema de nó único sem replicação de dados e sem SLA.

Suporte de clustering

Com os escalões Premium, Enterprise e Enterprise Flash, pode implementar o clustering para dividir automaticamente o conjunto de dados entre vários nós. Para implementar o clustering, especifique o número de shards para um máximo de 10. O custo incorrido será o do nó original multiplicado pelo número de shards.

Aceder à instância de Redis

O Redis tem uma ferramenta de linha de comandos para interagir com um Cache do Azure para Redis como cliente. A ferramenta está disponível para plataformas do Windows ao transferir as ferramentas de linha de comandos do Redis para Windows. Se quiser executar a ferramenta de linha de comandos noutra plataforma, transfira Cache do Azure para Redis a partir de https://redis.io/download.

Redis suporta um conjunto de comandos conhecidos. Normalmente é gerado um comando como COMMAND parameter1 parameter2 parameter3.

Eis alguns comandos comuns que pode utilizar:

Comando Descrição
ping Ping do servidor. Devolve "PONG".
set [key] [value] Define uma chave/valor na cache. Devolve "OK" no sucesso.
get [key] Obtém um valor da cache.
exists [key] Devolve "1" se a chave existir na cache, "0" se não.
type [key] Devolve o tipo associado ao valor da chave indicada.
incr [key] Incremente o valor indicado associado à chave em "1". O valor tem de ser um número inteiro ou um valor duplo. Isto devolve o novo valor.
incrby [key] [amount] Incremente o valor dado associado à chave na quantidade especificada. O valor tem de ser um número inteiro ou um valor duplo. Isto devolve o novo valor.
del [key] Elimina o valor associado à chave.
flushdb Elimina todas as chaves e valores na base de dados.

Segue-se um exemplo de um comando:

> set somekey somevalue
OK
> get somekey
"somevalue"
> exists somekey
(string) 1
> del somekey
(string) 1
> exists somekey
(string) 0

Adicionar um tempo de expiração aos valores

A colocação em cache é importante pois permite-nos armazenar valores comummente usados na memória. No entanto, também precisamos de uma forma de expirar valores quando estão obsoletos. No Redis isto é feito ao aplicar um time to live (TTL) a uma chave.

Quando o TTL termina, a chave é eliminada automaticamente, como se o comando DEL fosse gerado. Eis algumas notas sobre expirações de TTL.

  • As expirações podem ser definidas com uma precisão de segundos ou milissegundos.
  • A resolução de tempo de expiração é sempre 1 milissegundo.
  • As informações sobre expirações são replicadas e persistidas no disco, a hora que passa virtualmente quando o servidor Redis permanece parado (isto significa que o Redis guarda a data em que uma chave expira).

Eis um exemplo de expiração:

> set counter 100
OK
> expire counter 5
(integer) 1
> get counter
100
... wait ...
> get counter
(nil)

Aceder a uma cache de Redis a partir de um cliente

Para ligar a uma instância Cache do Azure para Redis, precisa de várias informações. Os clientes necessitam do nome do anfitrião, da porta e de uma chave de acesso para a cache. Pode obter estas informações na portal do Azure através da página Chaves de Acesso de Definições>.

  • O nome do anfitrião é o endereço Internet público da cache, que foi criado com o nome da cache. Por exemplo, sportsresults.redis.cache.windows.net.

  • A chave de acesso funciona como uma palavra-passe na cache. São criadas duas chaves: primária e secundária. Pode utilizar qualquer uma das chaves. São fornecidas duas, caso precise de alterar a chave primária. Pode mudar todos os seus clientes para a chave secundária e regenerar a chave primária. Isto impediria que as aplicações utilizassem a chave primária original. A Microsoft recomenda regenerar periodicamente as chaves – tal como faria com as palavras-passe pessoais.

Aviso

As chaves de acesso devem ser consideradas informação confidenciais, trate-as como trataria uma palavra-passe. Qualquer pessoa com uma chave de acesso pode efetuar qualquer operação na sua cache!