AWS

15 nov, 2016

Atualização do Amazon ElastiCache para Redis

Publicidade

Muitos clientes da AWS usam o Amazon ElastiCache para implementar um armazenamento de dados em memória rápido para suas aplicações.

Nós lançamos o Amazon ElastiCache para Redis em 2013 e adicionamos a exportação de snapshots para S3, atualizamos o mecanismo, recursos de scale-up, tagging, e suporte para operação Multi-AZ com failover automático durante o último ano.

Agora, adicionamos um conjunto de novos recursos e capacidades para o ElastiCache para Redis. Aqui está um resumo:

Sharded Cluster Support – Agora você pode criar clusters fragmentados que podem conter mais de 3,5 TiB de dados na memória.

Melhoria do console – A criação e manutenção de clusters agora é mais simples e requer muito menos cliques.

Atualizações de mecanismos – Você agora tem acesso aos recursos do mecanismo Redis 3.2.

Dados geoespaciais – Agora você pode armazenar e processar dados geoespaciais.

Vamos nessa!

Suporte Cluster Sharded/Novo Console

Até agora, o ElastiCache para Redis permitiu criar um cluster que contém um único nó principal e até 5 réplicas de leitura. Esse modelo limita o tamanho do armazenamento de dados em memória a 237 GiB por cluster.

Agora você pode criar clusters com até 15 fragmentos, expandindo o armazenamento de dados global em memória para mais de 3,5 TiB. Cada fragmento pode ter até 5 réplicas de leitura, dando-lhe a capacidade de lidar com 20 milhões de leituras e 4,5 milhões de escrita por segundo.

O modelo sharded, em conjunto com as réplicas de leitura, melhora o desempenho global e a disponibilidade. Os dados são distribuídos por vários nós, e as réplicas de leitura suportam failover rápido e automático no caso de um nó primário ter um problema.

A fim de tirar vantagem do modelo sharded, você deve usar um cliente Redis que reconheça agrupamentos. O cliente irá tratar o cluster como uma tabela hash com 16.384 slots espalhados igualmente entre os shards e, em seguida, mapear as chaves de entrada para o shard adequado.

O ElastiCache para Redis trata todo o cluster como uma unidade para fins de backup e restauração; você não precisa pensar ou gerenciar backups para os shards individuais.

O Console foi melhorado e eu posso criar meu primeiro cluster Scale Out com facilidade (note que eu marquei Cluster Mode enabled (Scale Out) depois que eu escolhi como o meu mecanismo de Cluster):

ec_redis_create_so_cluster_2

O Console ajuda a escolher um tipo de nó adequado com um novo menu acessível:

ec_redis_pick_your_node_not_your_nose_2

Você também pode criar grupos fragmentados usando a AWS Command Line Interface (CLI), as ferramentas da AWS para Windows PowerShell, a API do ElastiCache ou através de um modelo do AWS CloudFormation.

Atualização do mecanismo

O Amazon ElastiCache para Redis é compatível com a versão 3.2 do mecanismo Redis. O mecanismo inclui três novos recursos que podem ser do seu interesse:

Consistência de gravação forçada – o novo comando WAIT bloqueia o chamador até que todos os comandos de gravação anteriores sejam reconhecidos pelo nó primário e um determinado número de réplicas de leitura. Essa mudança não torna o Redis um armazenamento de dados fortemente consistente, mas ela aumenta as chances de que uma réplica de leitura recém-promovida irá incluir as mais recentes gravações ao primário anterior.

SPOP com COUNT – O comando SPOP remove e retorna um elemento aleatório de um conjunto. Agora você pode pedir mais de um elemento de cada vez.

Bitfields – Os Bitfields são uma maneira eficiente para a memória armazenar uma coleção de muitos números inteiros pequenos como um bitmap, armazenado como uma string Redis. Usando o comando BITFIELD, você pode endereçar (GET) e manipular (SET, o incremento ou decremento) campos de larguras variadas sem ter que pensar sobre o alinhamento de byte ou palavra limites.

Nossa implementação do Redis inclui um mecanismo de captura instantânea que não precisa desembolsar o processo do servidor em processos pai e filho. Sob carga pesada, o padrão, o mecanismo de snapshot com base em forquilha pode levar à degradação do desempenho devido à troca. Nossa implementação alternativa atua quando a utilização da memória é superior a 50% e ordenadamente evita a questão. É um pouco mais lento, por isso use-a somente quando necessário.

Melhoramos o desempenho do mecanismo de sincronização que traz uma réplica de leitura fresca em sincronia com o seu nó principal. Fizemos uma melhoria semelhante ao mecanismo que traz as réplicas de leitura restantes de volta para sincronizar com o nó primário recém-promovido.

Como eu disse anteriormente, o nosso mecanismo é compatível com versões open source comparáveis e suas aplicações não requerem quaisquer alterações.

Dados geoespaciais

Agora você pode armazenar e consultar dados geoespaciais (uma latitude e uma longitude). Aqui estão os comandos:

  • GEOADD – Inserir um item geoespacial.
  • GEODIST – Obter a distância entre dois itens geoespaciais.
  • GEOHASH – Obter uma string Geohash (geocodificação) para um item.
  • GEOPOS – Retorna as posições dos itens identificados por uma chave.
  • GEORADIUS – Retorna itens que estão dentro de um raio específico de um local.
  • GEORADIUSBYMEMBER – Retorna os itens que estão dentro de um raio específico de outro item.

Já disponível

A criação do cluster Sharded e todas as características que eu mencionei já estão disponíveis e você já pode começar a usá-los em todas as regiões da AWS.

Deixe suas dúvidas e/ou comentários aqui ou escreva diretamente para o autor (em inglês).