Galeria de mapas mentais Redis
Este é um mapa mental sobre Redis. O conteúdo principal inclui: 8. Persistência do Redis, 7. Transações do Redis, 6. Publicar e assinar, 2. Inicialização, 1. Instalar o Redis 7.0, 5. Arquivo de configuração do Redis, 4., Dados do Redis. tipo, 3. Comandos relacionados à chave (chave) do Redis.
Editado em 2024-03-28 15:31:48A segunda unidade do Curso Obrigatório de Biologia resumiu e organizou os pontos de conhecimento, abrangendo todos os conteúdos básicos, o que é muito conveniente para todos aprenderem. Adequado para revisão e visualização de exames para melhorar a eficiência do aprendizado. Apresse-se e colete-o para aprender juntos!
Este é um mapa mental sobre Extração e corrosão de mim. O conteúdo principal inclui: Corrosão de metais, Extração de metais e a série de reatividade.
Este é um mapa mental sobre Reatividade de metais. O conteúdo principal inclui: Reações de deslocamento de metais, A série de reatividade de metais.
A segunda unidade do Curso Obrigatório de Biologia resumiu e organizou os pontos de conhecimento, abrangendo todos os conteúdos básicos, o que é muito conveniente para todos aprenderem. Adequado para revisão e visualização de exames para melhorar a eficiência do aprendizado. Apresse-se e colete-o para aprender juntos!
Este é um mapa mental sobre Extração e corrosão de mim. O conteúdo principal inclui: Corrosão de metais, Extração de metais e a série de reatividade.
Este é um mapa mental sobre Reatividade de metais. O conteúdo principal inclui: Reações de deslocamento de metais, A série de reatividade de metais.
Redis
1. Instale o Redis7.0
1. Baixe; coloque-o no diretório opt
https://redis.io/download/
2. Descompacte no diretório opt;
tar -zxvf redis-7.0.0.tar.gz
Após descompressão
3. Digite o diretório redis-7.0.11
Instale o gcc
yum instale o gcc-c
fazer
fazer instalar
captura de tela
4. Diretório de instalação padrão
/usr/local/bin
/usr/local no Linux é semelhante a C:\Program Files em nosso sistema Windows
Verificar
redis-benchmark: ferramenta de teste de desempenho, execute este comando após o serviço ser iniciado para ver o desempenho do seu notebook.
redis-check-aof: Repara arquivos AOF problemáticos
redis-check-dump: corrige arquivo dump.rdb problemático
redis-cli: cliente, entrada de operação
redis-sentinel: usado pelo cluster redis
redis-server: comando de inicialização do servidor Redis
5. Modifique o arquivo de configuração redis.conf
2. Comece
Digite o diretório de instalação padrão do Redis
redis-server: comando de inicialização do servidor Redis
redis-cli: cliente, entrada de operação
Se uma senha for definida: senha de autenticação
Comece em segundo plano
Faça backup do Redis.conf
daemonizar não para sim
[root@ecs-353138 redis-7.0.0]# redis-server ./redis.conf
Para iniciar o redis, você precisa especificar um arquivo de configuração. Na verdade, o redis lê o arquivo de configuração interno por padrão, não o redis.conf no diretório de instalação.
fecho
Desligamento de instância única: redis-cli -a desligamento de senha
Desligamento de múltiplas instâncias: Especifique o desligamento da porta: redis-cli -p 6379 shutdown
Desinstalar Redis
1. Pare o serviço Redis
2. Exclua os arquivos relacionados ao redis no diretório /usr/local/lib
3. Comandos relacionados à chave Redis
chaves*
Veja todas as chaves na biblioteca atual
existe chave
Determinar se uma determinada chave existe
digite chave
Verifique qual é o tipo da sua chave
del chave
Excluir dados-chave especificados
chave de desvinculação
Selecione exclusão sem bloqueio com base no valor
O comando Redis UNLINK é muito semelhante ao comando DEL: usado para excluir a chave especificada. Assim como DEL, se a chave não existir, ela será ignorada. No entanto, este comando executa a recuperação de memória real em um thread fora do comando, portanto, não está bloqueando, enquanto DEL está. É daí que vem o nome do comando: o comando UNLINK simplesmente desconecta uma chave do keyspace. A exclusão real ocorrerá de forma assíncrona posteriormente.
expirar chave 10
10 segundos, defina o tempo de expiração para a chave fornecida
chave ttl
Verifique quantos segundos faltam para expirar. -1 significa que nunca expirará e -2 significa que expirou.
selecione 0
Alternar banco de dados
dimensionar
Veja o número de chaves no banco de dados atual
flushdb
Limpar biblioteca atual
descarga
Mate todas as bibliotecas
4. Tipo de dados Redis
Cinco tipos básicos de dados
corda
Introdução
String é o tipo mais básico de Redis e uma chave corresponde a um valor. O tipo String é seguro para binários. Isso significa que a string do Redis pode conter qualquer dado. Por exemplo, imagens jpg ou objetos serializados. Um valor de string no Redis pode ser de até 512M.
Comandos comuns
definir valor-chave NX
NX: Quando a chave não existe no banco de dados, você pode adicionar o valor-chave ao banco de dados XX: Quando a chave existe no banco de dados, o valor-chave pode ser adicionado ao banco de dados, que é mutuamente exclusivo com os parâmetros NX. EX: segundos de tempo limite da chave PX: tempo limite da chave em milissegundos, mutuamente exclusivo com EX
Adicione pares de valores-chave
pegar a chave
Consulte o valor-chave correspondente
anexar valor-chave
Acrescenta o valor fornecido ao final do valor original
chave strlen
Obtenha o comprimento do valor
valor chave setnx
Defina o valor da chave somente se a chave não existir
chave de aumento
Aumente o valor numérico armazenado na chave em 1
chave de decréscimo
Diminua o valor numérico armazenado na chave em 1
Só pode operar com valores numéricos. Se estiver vazio, o novo valor será 1 ou -1.
tamanho do passo da chave incrby / decrby
Aumenta ou diminui o valor numérico armazenado na chave. Tamanho de passo personalizado
mset chave1 valor1 chave2 valor2
Defina um ou mais pares de valores-chave ao mesmo tempo
mgobter chave1 chave2
Obtenha um ou mais valores ao mesmo tempo
msetnx chave1 valor1 chave2 valor2
Atomicidade, se um falhar, todos falharão.
Defina um ou mais pares de valores-chave ao mesmo tempo se e somente se todas as chaves fornecidas não existirem
chave getrange posição inicial posição final
Obtenha o intervalo de valores, semelhante a substring em java, pacote frontal, pacote traseiro
valor da posição inicial da chave setrange
Substitua o valor da string armazenado na chave pelo valor, começando na posição inicial (o índice começa em 0)
valor do tempo de expiração da chave setex
Ao definir o valor da chave, defina o tempo de expiração em segundos.
valor da chave getset
Substitua o antigo pelo novo, defina um novo valor e obtenha o valor antigo ao mesmo tempo
estrutura de dados
A estrutura de dados de String é Simple Dynamic String (SDS).
lista
Introdução
Valores múltiplos de chave única, classificados em ordem de inserção, você pode adicionar um elemento ao início (esquerda) ou ao final (direita) da lista.
Comandos comuns
chave lpush / rpush valor1 valor2
Insira um ou mais valores da esquerda/direita
lpop/rpop
Cuspa um valor da esquerda/direita. O valor está na chave e o valor está na chave.
rpoplppush key1 key2
cuspa um valor do lado direito da lista key1 e insira-o no lado esquerdo da lista key2
tecla lrange iniciar parada
lrange idade 0 -1, significa obter todos
Obtenha elementos de acordo com o subscrito do índice (da esquerda para a direita)
índice de chave lindex
Obtenha elementos de acordo com o subscrito do índice (da esquerda para a direita)
chave cheia
Obtenha o comprimento da lista
chave linsert antes do valor newvalue
Insira o valor de newvalue na frente de value
lrem chave n valor
Exclua n valores da esquerda (da esquerda para a direita)
lset valor do índice chave
Substitua o valor cujo subscrito é o índice na chave da lista por valor
estrutura de dados
① A estrutura de dados de List é quickList. ② Primeiro, quando os elementos da lista são pequenos, será usado um armazenamento contínuo em memória. Essa estrutura é ziplist, que é uma lista compactada. ③ Quando a quantidade de dados for relativamente grande, ela será alterada para lista rápida.
definir
Introdução
A desduplicação automática e o conjunto são coleções não ordenadas do tipo string. A camada inferior é uma tabela hash com um valor vazio. A complexidade de adição, exclusão e consulta é O(1).
Comandos comuns
chave triste valor1 valor2
Adicione um ou mais elementos membros à chave de coleção. Os elementos membros existentes serão ignorados.
chave de membros
Obtenha todos os valores do conjunto
valor chave sismember
Determine se a chave definida contém o valor, existe 1, não existe 0
chave de cartão
Retorna o número de elementos da coleção
srem idade valor1 valor2
Excluir um elemento da coleção
tecla pop
cuspir um valor aleatório da coleção
chave srandmember n
Pegue aleatoriamente n valores deste conjunto. não será removido da coleção
mover valor de origem e destino
Mover um valor em uma coleção de uma coleção para outra
sinterização key1 key2
Retorna o elemento de interseção de duas coleções
sunion key1 key2
Retorna os elementos de união de duas coleções
sdiff chave1 chave2
Retorna os elementos de diferença dos dois conjuntos (aqueles em key1, excluindo aqueles em key2)
estrutura de dados
① A estrutura de dados Set é um dicionário dict e o dicionário é implementado usando uma tabela hash. ② A implementação interna do HashSet em Java usa HashMap, mas todos os valores apontam para o mesmo objeto. O mesmo se aplica à estrutura definida do Redis. Ela também usa uma estrutura hash internamente e todos os valores apontam para o mesmo valor interno.
cerquilha
Introdução
Hash Redis é uma coleção de pares de valores-chave, uma tabela de mapeamento de campos e valores do tipo string é particularmente adequada para armazenar objetos.
Comandos comuns
valor do campo chave hset
Atribuir valor à chave do campo na coleção de chaves
campo-chave hget
Obtenha o valor do campo de coleção key1
hmset chave1 campo1 valor1 campo2 valor2
Defina valores de hash em lotes
campo-chave hexista
Verifique se o campo fornecido existe na chave da tabela hash
chave hkeys
Liste todos os campos deste conjunto de hash
chave hvals
Liste todos os valores do conjunto hash
incremento do campo-chave hincrby
Adicione o incremento 1 -1 ao valor do campo campo na chave da tabela hash
valor do campo chave hsetnx
Defina o valor do campo campo na chave da tabela hash como valor se e somente se o campo campo não existir
estrutura de dados
Existem duas estruturas de dados correspondentes ao tipo Hash: ziplist (lista compactada) e hashtable (tabela hash). Quando o comprimento do valor do campo for curto e o número for pequeno, use ziplist, caso contrário, use hashtable
zset (conjunto ordenado)
Introdução
zset é muito semelhante a um conjunto comum. É uma coleção de strings sem elementos repetidos. A diferença é que cada membro do conjunto ordenado está associado a uma pontuação. definido pela pontuação mais alta. Os membros do conjunto são únicos, mas as pontuações podem ser repetidas
Comandos comuns
chave zadd pontuação1 valor1 pontuação2 valor2
Adicione um ou mais elementos membros e seus valores de pontuação à chave do conjunto ordenado
tecla zrange iniciar parada [WITHSCORES]
Retorna os elementos na chave do conjunto ordenado cujos subscritos estão entre o início e o fim. Com WITHSCORES, as pontuações e valores podem ser retornados ao conjunto de resultados.
chave zrangebyscore min max
Retorna todos os membros da chave do conjunto classificado cujo valor de pontuação está entre mínimo e máximo (incluindo igual a mínimo ou máximo). Os membros do conjunto ordenado são organizados em ordem crescente de valor da pontuação (de pequeno para grande)
chave zrevrangebyscore máx. min
Altere para classificar do maior para o menor
valor de incremento da chave zincrby
Adicione um incremento à pontuação do elemento
valor chave zrem
Exclua o elemento com o valor especificado na coleção
chave zcount mín máx
Conte o conjunto, o número de elementos no intervalo de fração
valor chave zrank
Retorna a classificação do valor no conjunto, começando em 0
estrutura de dados
Hash, a função do hash é associar o valor do elemento e a pontuação do peso para garantir a exclusividade do valor do elemento. O valor da pontuação correspondente pode ser encontrado por meio do valor do elemento.
Lista de atalhos O objetivo da lista de atalhos é classificar os valores dos elementos e obter a lista de elementos de acordo com o intervalo da pontuação.
Três tipos de dados avançados
Bitmaps
Os bitmaps em si não são um tipo de dados; na verdade, são uma string (valor-chave), mas podem operar nos bits da string.
HyperLogLog
Redis HyperLogLog é um algoritmo usado para estatísticas de cardinalidade. A vantagem do HyperLogLog é que quando o número ou volume de elementos de entrada é muito grande, o espaço necessário para calcular a cardinalidade é sempre fixo e muito pequeno.
Geoespacial
GEO: Geográfico, a abreviatura de informação geográfica. Este tipo são as coordenadas bidimensionais do elemento, que é a latitude e longitude no mapa. Com base neste tipo, o redis fornece operações comuns, como configuração de longitude e latitude, consulta, consulta de intervalo, consulta de distância, hash de longitude e latitude, etc.
5. Arquivo de configuração Redis
Configuração relacionada à rede
vincular
Por padrão, bind=127.0.0.1 só pode aceitar solicitações de acesso desta máquina.
modo protegido
Defina o modo de proteção de acesso local como não
porta
Porta, padrão 6379
tempo esgotado
Quantos segundos leva para um cliente ocioso desligar, 0 significa desligar esta função. ou seja, nunca feche
tcp-keepalive
A unidade é segundos. Se definida como 0, a detecção Keepalive não será realizada.
Uma detecção de pulsação para acessar clientes, uma vez a cada n segundos
GERALgeral
demonizar
Quer seja um processo em segundo plano (daemon), defina como sim
arquivo pid
O local onde o arquivo pid está armazenado. Cada instância gerará um arquivo pid diferente.
nível de log
Para ambiente de produção, escolha aviso ou aviso.
Especifique o nível de log. O Redis suporta um total de quatro níveis: depuração, detalhado, aviso e aviso.
arquivo de log
Nome do arquivo de registro
bancos de dados 16
Defina o número de bibliotecas. O padrão é 16. O banco de dados padrão é 0. Você pode usar o comando SELECT <dbid> para especificar o ID do banco de dados na conexão.
SEGURANÇASegurança
configurar senha
LIMITSlimites
maxclients
Defina quantos clientes o Redis pode se conectar ao mesmo tempo
O padrão é 10.000 clientes
Se esse limite for atingido, o redis rejeitará novas solicitações de conexão e responderá com “número máximo de clientes alcançados” a esses solicitantes de conexão.
memória máxima
política de memória máxima
amostras de maxmemory
6. Publique e assine
O que são publicar e assinar?
A publicação e assinatura do Redis (pub/sub) é um modelo de comunicação de mensagens: o remetente (pub) envia mensagens e os assinantes (sub) recebem mensagens.
O cliente se inscreve no canal
Quando uma mensagem é publicada neste canal, a mensagem será enviada ao cliente inscrito
Implementação de comando
Abra um cliente para se inscrever no canal1
inscreva-se no canal 1
Abra outro cliente e publique a mensagem olá no canal1
publicar canal1 olá
O 2 retornado é o número de assinaturas
7. Transações Redis
1. Definição
Uma transação Redis é uma operação única e isolada: todos os comandos da transação são serializados e executados em ordem. Durante a execução da transação, ela não será interrompida por solicitações de comandos enviadas por outros clientes.
A principal função das transações Redis é conectar vários comandos em série para evitar que outros comandos entrem na fila.
2. Multi, Exec, descarte
① A partir da entrada do comando Multi, os comandos inseridos serão inseridos na fila de comandos em sequência, mas não serão executados até que Exec seja inserido, e o Redis executará os comandos na fila de comandos anterior em sequência. ② Durante o processo de formação da equipe, você pode abandonar a formação da equipe descartando-a.
Formação da equipe bem-sucedida, submissão bem-sucedida
Foi reportado um erro durante a fase de formação da equipe e o envio falhou.
A formação da equipe foi bem-sucedida e a finalização foi bem-sucedida ou falhou.
3. Tratamento de erros de transação
Se um comando na fila reportar um erro, todas as filas serão canceladas durante a execução.
Se um erro for relatado para um comando durante a fase de execução, apenas o comando que relatou o erro não será executado e os demais comandos serão executados sem reversão.
4. Três características das transações Redis
operações de quarentena separadas
Todos os comandos em uma transação são serializados e executados sequencialmente. Durante a execução da transação, ela não será interrompida por solicitações de comandos enviadas por outros clientes.
Nenhum conceito de nível de isolamento
Os comandos na fila não serão realmente executados até que sejam enviados, porque nenhuma instrução será realmente executada antes da transação ser enviada.
Nenhuma garantia de atomicidade
Se um comando na transação falhar na execução, os comandos subsequentes ainda serão executados sem reversão.
8. Persistência Redis
RDB (banco de dados Redis)
O que é?
Grave um instantâneo do conjunto de dados na memória no disco dentro de um intervalo de tempo especificado, que também é chamado de instantâneo no jargão. Quando é restaurado, o arquivo de instantâneo é lido diretamente na memória.
Como o backup é realizado
O Redis criará (fork) um processo filho separadamente para persistência. Ele primeiro gravará os dados em um arquivo temporário. Após a conclusão do processo de persistência, esse arquivo temporário será usado para substituir o último arquivo persistido. Durante todo o processo, o processo principal não executa nenhuma operação de IO, o que garante um desempenho extremamente alto. Se for necessária a recuperação de dados em grande escala e a integridade da recuperação de dados não for muito sensível, o método RDB é mais eficiente que o método AOF. . de alta eficiência. A desvantagem do RDB é que os dados após a última persistência podem ser perdidos.
Garfo
A função do Fork é copiar um processo igual ao processo atual. Todos os dados (variáveis, variáveis de ambiente, contador de programa, etc.) do novo processo têm os mesmos valores do processo original, mas é um processo completamente novo e serve como um processo filho do processo original.
Em um programa Linux, fork() gerará um processo filho que é exatamente igual ao processo pai, mas o processo filho frequentemente fará chamadas de sistema exec depois disso. Por razões de eficiência, o Linux introduziu a "tecnologia copy-on-write".
Geralmente, o processo pai e o processo filho compartilharão o mesmo segmento de memória física. Somente quando o conteúdo de cada segmento no espaço do processo for alterado, o conteúdo do processo pai será copiado para o processo filho.
arquivo dump.rdb
Configure o nome do arquivo em redis.conf, o padrão é dump.rdb
Vantagem
Adequado para recuperação de dados em grande escala
É mais adequado para uso se os requisitos de integridade e consistência dos dados não forem altos.
Economize espaço em disco
Recuperação rápida
insuficiente
Um backup é feito em um determinado intervalo durante o ciclo de backup, portanto, se o Redis falhar inesperadamente, todas as modificações após o último instantâneo serão perdidas.
Resumir
AOF (arquivo somente anexado)
O que é?
Registre cada operação de gravação na forma de um log (salvamento incremental), registre todas as instruções de gravação executadas pelo Redis (as operações de leitura não são registradas), apenas anexe arquivos, mas não pode reescrever arquivos, o redis irá ler no início Este arquivo reconstrói os dados. Em outras palavras, quando o redis for reiniciado, as instruções de gravação serão executadas de frente para trás com base no conteúdo do arquivo de log para concluir o trabalho de recuperação de dados.
Processo de persistência AOF
AOF não está habilitado por padrão
AOF e RDB estão habilitados ao mesmo tempo, quem o redis escuta?
AOF e RDB são habilitados ao mesmo tempo e o sistema usa os dados AOF por padrão (os dados não serão perdidos)
Vantagem
O mecanismo de backup é mais robusto e a probabilidade de perda de dados é menor
insuficiente
Ocupa mais espaço em disco que o RDB
A restauração de backups é mais lenta.
Resumir