Redis é um banco de dados NOSQL no qual os dados são armazenados em pares de valores-chave.
O Redis armazena dados na memória principal, o que significa que é rápido, mas volátil, ao contrário de sistemas de banco de dados como PostgreSQL, que armazena dados em disco.
Em uma aplicação com servidor e banco de dados, acessar informações no banco de dados causará latência.
Bancos de dados de valores-chave como redis são frequentemente mantidos na frente desses bancos de dados e as operações de acesso levam 2 etapas:
Com essas 2 etapas e dado que a memória principal tem menor latência que o disco, podemos dizer que o redis pode ser usado para armazenar e acessar dados recentes e frequentes e operações caras, tornando os aplicativos 10 a 50x mais rápidos.
É portanto um fato que se você pretende construir um aplicativo que será escalonável no futuro, o Redis(ou bancos de dados semelhantes ao Redis) é indispensável.
O Redis é código aberto?: Sim, o Redis é código aberto com um tipo especial de licença, mas existem alternativas como KeyDB do Snapchat e Memcached que são de código aberto. KeyDB é um fork do Redis, mas a partir de agora só pode ser executado em Linux.
O Redis oferece suporte ao Windows?: Não, o Redis não oferece suporte ao Windows, mas você pode instalar WSL/Ubuntu e instalar o redis usando
sudo apt install redis
redis-server --port 6000
onde 6000 é a porta do servidor local em que você deseja executá-lo. (ou seja, 127.0.0.1:6000).
A maioria dos problemas se deve ao fato de que a porta padrão que o redis-server está usando já está sendo usada
No Linux, instalar o redis é tão simples quanto
sudo apt install redis
ou no Mac:
brew install redis
Você precisa ter 2 instâncias do seu terminal em
no primeiro a executar seu servidor
redis-server -port
e no segundo para executar seu cliente
redis-cli
Ao construir um aplicativo da web, você não precisa executar o cliente , mas o servidor precisa estar em execução
Conceitos Redis
Existem 3 conceitos principais em redis que você deve entender ou 4
Todas as outras estruturas de dados são principalmente uma implementação avançada da primeira
Por lista, eu quis dizer array e não lista vinculada e é assim que o redis a chama.
Os pares de valores-chave são uma estrutura de dados comum na maioria das linguagens de programação.
Em Python é chamado de dicionários ou dict em resumo
Em Javascript é chamado de Mapas
Em C# é chamado de Dicionários
Existem 6 operações principais para pares de valores-chave no Redis
Operações | Explicações | Exemplos | Explicações adicionais |
---|---|---|---|
DEFINIR | Cria um par de valores-chave | DEFINIR nome João | Define a chave para mapear o valor |
PEGAR | Obtém o valor da chave | OBTER nome | Isso retorna John |
DEL | Exclui o par de valores-chave | Nome DEL | Isso remove o nome do par de valores-chave do banco de dados |
EXISTE | Verifica se existe uma chave no banco de dados redis | EXISTE nome | retorna 1 ou 0 correspondente a Verdadeiro ou Falso |
FLUSHALL | Limpa todo o cache | FLUSHALL | mais ou menos como DROP TABLE no postgres |
CHAVES * | Retorna todas as chaves do banco de dados | CHAVES * |
Também existem operações baseadas em tempo. Em operações baseadas em tempo, a chave fica no cache apenas por um determinado período de tempo; após o tempo expirar, o cache exclui a chave.
Existem 2 operações principais baseadas em tempo
Operações | Explicações | Exemplos | Explicações adicionais |
---|---|---|---|
EXPIRAR | Expira uma chave após ser definida | EXPIRE nome 10 | Exclui o nome do valor-chave após 10s. A chave deve ser definida com SET antes de chamar EXPIRE. Uma alternativa comum é; |
SETEX | Expira uma chave após definição | SETEX 30 15 anos | Define a idade da chave para o valor 30 e, posteriormente, exclui o par de valores-chave após 15s |
TTL | Hora de viver | Idade TTL | Retorna o tempo restante antes da exclusão da chave de idade |
O Blog está ficando muito longo agora, falarei sobre listas, sets, hashmaps e também possíveis perguntas de entrevista sobre redis em outro blog.
Por favor, se você tiver dúvidas, comente-as abaixo, farei o possível para respondê-las ⭐. Boa codificação
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3