Gerenciamento Básico de Dados no Redis

RedisBeginner
Pratique Agora

Introdução

Neste laboratório, você explorará técnicas básicas de gerenciamento de dados no Redis. Começará aprendendo como incrementar e decrementar valores numéricos usando os comandos atômicos INCR e DECR, adequados para contadores e limitadores de taxa (rate limiters). Você se conectará ao servidor Redis usando redis-cli, definirá valores iniciais e, em seguida, os incrementará e decrementará, verificando os resultados com o comando GET.

Além disso, você aprenderá como recuperar todas as chaves armazenadas no Redis usando o comando KEYS.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 94%. Recebeu uma taxa de avaliações positivas de 100% dos estudantes.

Incrementar e Decrementar Valores com INCR/DECR

Nesta etapa, você aprenderá como incrementar e decrementar valores numéricos armazenados no Redis usando os comandos INCR e DECR. Esses comandos são atômicos, o que significa que é garantido que serão executados sem interferência de outros clientes, tornando-os adequados para tarefas como contadores e limitadores de taxa (rate limiters).

Primeiro, vamos conectar ao servidor Redis usando o comando redis-cli no terminal:

redis-cli

Agora, vamos definir uma chave chamada mycounter para um valor inicial de 10. Isso cria um par chave-valor no banco de dados Redis. A chave é mycounter e o valor é 10.

SET mycounter 10

Você deve ver a seguinte saída, confirmando que a chave foi definida com sucesso:

OK

O comando INCR incrementa o valor de uma chave em 1. Vamos incrementar mycounter:

INCR mycounter

A saída será o valor incrementado:

(integer) 11

Para verificar o valor, você pode usar o comando GET:

GET mycounter

A saída deve ser:

"11"

O comando DECR decrementa o valor de uma chave em 1. Vamos decrementar mycounter:

DECR mycounter

A saída será o valor decrementado:

(integer) 10

Novamente, verifique o valor com GET:

GET mycounter

A saída deve ser:

"10"

Se uma chave não existir, INCR e DECR a tratarão como se contivesse o valor 0. Vamos tentar incrementar uma chave inexistente chamada newcounter:

INCR newcounter

A saída será:

(integer) 1

Agora, verifique o valor de newcounter:

GET newcounter

A saída deve ser:

"1"

Da mesma forma, decrementar uma chave inexistente a tratará como 0 e a decrementará para -1.

DECR anothercounter

A saída será:

(integer) -1
GET anothercounter

A saída deve ser:

"-1"

Finalmente, saia do redis-cli:

exit

É importante sair do redis-cli após concluir os comandos para que o histórico de comandos seja devidamente registrado.

Recuperar Todas as Chaves com KEYS

Nesta etapa, você aprenderá como recuperar todas as chaves armazenadas no Redis usando o comando KEYS. Embora KEYS seja útil para desenvolvimento e depuração, geralmente não é recomendado para ambientes de produção com grandes conjuntos de dados, pois pode bloquear o servidor enquanto itera por todas as chaves.

Primeiro, conecte-se ao servidor Redis usando redis-cli:

redis-cli

Na etapa anterior, você criou várias chaves: mycounter, newcounter e anothercounter. Vamos adicionar mais algumas chaves para tornar o exemplo mais interessante.

SET user:1000:name "John"
SET user:1000:age 30
SET user:1001:name "Jane"

Agora, use o comando KEYS com o padrão * para recuperar todas as chaves no banco de dados:

KEYS *

A saída será uma lista de todas as chaves:

1) "anothercounter"
2) "user:1000:age"
3) "user:1001:name"
4) "mycounter"
5) "newcounter"
6) "user:1000:name"

A ordem das chaves pode variar.

Você também pode usar padrões para recuperar chaves que correspondem a um padrão específico. Por exemplo, para recuperar todas as chaves que começam com user:, use o seguinte comando:

KEYS user:*

A saída será:

1) "user:1000:age"
2) "user:1001:name"
3) "user:1000:name"

Outro exemplo, para recuperar todas as chaves que contêm counter, use o seguinte comando:

KEYS *counter*

A saída será:

1) "anothercounter"
2) "mycounter"
3) "newcounter"

Lembre-se que usar KEYS * em um banco de dados grande pode impactar o desempenho. Para ambientes de produção, considere usar SCAN em vez disso, que itera pelo espaço de chaves de forma não bloqueante.

Finalmente, saia do redis-cli:

exit

Verificar Tipo de Dados com TYPE

Nesta etapa, você aprenderá como verificar o tipo de dados de uma chave armazenada no Redis usando o comando TYPE. O Redis suporta vários tipos de dados, incluindo strings, listas, conjuntos (sets), conjuntos ordenados (sorted sets) e hashes. Compreender o tipo de dados de uma chave é crucial para realizar operações apropriadas nela.

Primeiro, conecte-se ao servidor Redis usando redis-cli:

redis-cli

Nas etapas anteriores, você criou várias chaves com valores diferentes. Vamos verificar seus tipos de dados.

Primeiro, vamos verificar o tipo de dados da chave mycounter:

TYPE mycounter

A saída será:

string

Isso indica que mycounter é armazenado como uma string, embora contenha um valor numérico. O Redis converte automaticamente valores numéricos em strings ao usar SET.

Em seguida, vamos verificar o tipo de dados da chave user:1000:name:

TYPE user:1000:name

A saída será:

string

Isso também indica que user:1000:name é armazenado como uma string.

Agora, vamos verificar o tipo de dados de uma chave que não existe, como nonexistentkey:

TYPE nonexistentkey

A saída será:

none

Isso indica que a chave não existe no banco de dados.

Para ilustrar ainda mais os tipos de dados, vamos criar uma lista:

LPUSH mylist "item1"
LPUSH mylist "item2"

Agora, verifique o tipo de dados de mylist:

TYPE mylist

A saída será:

list

Isso confirma que mylist é armazenado como uma lista.

Da mesma forma, você pode criar outros tipos de dados, como conjuntos (sets), conjuntos ordenados (sorted sets) e hashes, e usar o comando TYPE para verificar seus tipos. Por exemplo:

SADD myset "member1"
SADD myset "member2"
TYPE myset

A saída será:

set
ZADD mysortedset 1 "element1"
ZADD mysortedset 2 "element2"
TYPE mysortedset

A saída será:

zset
HSET myhash field1 "value1"
HSET myhash field2 "value2"
TYPE myhash

A saída será:

hash

Finalmente, saia do redis-cli:

exit

Limpar Dados com FLUSHDB

Nesta etapa, você aprenderá como limpar todos os dados do banco de dados Redis atualmente selecionado usando o comando FLUSHDB. Este comando é útil para redefinir o banco de dados durante o desenvolvimento ou testes. Use este comando com cautela em ambientes de produção, pois ele irá excluir permanentemente todos os dados no banco de dados.

Primeiro, conecte-se ao servidor Redis usando redis-cli:

redis-cli

Antes de limpar o banco de dados, vamos verificar se há chaves presentes. Use o comando KEYS *:

KEYS *

Você deve ver uma lista de chaves que você criou nas etapas anteriores, como mycounter, newcounter, user:1000:name e mylist.

Agora, execute o comando FLUSHDB:

FLUSHDB

A saída será:

OK

Isso indica que o banco de dados foi limpo com sucesso.

Para verificar se o banco de dados está agora vazio, use o comando KEYS * novamente:

KEYS *

A saída será uma lista vazia:

(empty array)

Isso confirma que todas as chaves foram removidas do banco de dados.

É importante entender que FLUSHDB limpa apenas o banco de dados atualmente selecionado. O Redis suporta múltiplos bancos de dados (numerados de 0 a 15 por padrão). Se você deseja limpar todos os bancos de dados, pode usar o comando FLUSHALL. No entanto, não usaremos FLUSHALL neste laboratório para evitar a perda de dados não intencional.

Finalmente, saia do redis-cli:

exit

Resumo

Neste laboratório, você aprendeu técnicas fundamentais de gerenciamento de dados no Redis. Especificamente, você praticou o incremento e decremento de valores numéricos usando os comandos atômicos INCR e DECR, que são úteis para implementar contadores e limitadores de taxa. Você também aprendeu que, se uma chave não existir, esses comandos a tratarão como se contivesse o valor 0.

Além disso, você foi apresentado ao comando KEYS para recuperar todas as chaves armazenadas no Redis. Embora útil para desenvolvimento e depuração, geralmente não é recomendado para ambientes de produção com grandes conjuntos de dados. Finalmente, você aprendeu como verificar tipos de dados e limpar o banco de dados.