Redis — Básico
O Redis é uma estrutura de dados armazenada em memória que pode ser utilizada como banco de dados, cache e message broker.
Ele suporta estruturas de dados como strings, hashes, listas, conjuntos, conjuntos classificados com consultas de intervalo, bitmaps, hyperloglogs, índices geoespaciais com consultas e fluxos radius.
Aqui vai alguns comandos básicos para brincar:
Setar uma chave com valor
SET birl "birl gates"
Obter o valor de uma chave
GET birl
Deletar uma chave
DEL birl
Incrementar o valor inteiro de uma chave
SET birl 1
INCR birl
Ao invés de utilizar a função INCR também poderíamos incrementar o valor da seguinte forma:
x = GET count
x = x + 1
SET count x
O problema é que ao fazer dessa maneira funcionará somente enquanto houver um único cliente utilizando a chave. Veja o que aconteceria se dois clientes estivessem acessando a chave ao mesmo tempo:
O cliente A lê a contagem como 10.
O cliente B lê a contagem como 10.
O cliente A incrementa 10 e configura a contagem para 11.
O cliente B incrementa 10 e define a contagem para 11.
Queríamos que o valor fosse 12, mas em vez disso é 11!
Isso ocorre porque incrementar o valor dessa maneira não é uma operação atômica e a função INCR impedirá que isso aconteça, porque é uma operação atômica.
Setar tempo de expiração para chave/valor
SET birl "birl gates"
EXPIRE birl 120
A função EXPIRE faz com que a chave exista por um determinado período de tempo em segundos e para obter quanto tempo falta para a expiração da chave basta utilizar TTL
TTL birl
A função TTL pode ter os seguintes retornos:
-2: Quer dizer que a chave foi expirada e deixou de existir
-1: A chave nunca expirará
>= 0: Segundos que faltam para que a chave expire