minhas informações de contato
Correspondência[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
1.Desempenho
Redis: usa apenas um único núcleo. Em média, o Redis tem desempenho superior ao Memcached ao armazenar pequenos dados em cada núcleo.
Memcached: você pode usar vários núcleos e, em dados de mais de 100k, o desempenho do Memcached é superior ao do Redis.
2. Eficiência no uso da memória
MemCached: Usando armazenamento simples de valor-chave, o Memcached tem maior utilização de memória.
Redis: Se uma estrutura hash for usada para armazenamento de valores-chave, sua utilização de memória será maior que a do Memcached devido à sua compactação combinada.
3. Espaço de memória e tamanho dos dados
MemCached: A memória máxima pode ser modificada, usando o algoritmo LRU. O tamanho de um único valor-chave no Memcached é limitado e um valor suporta apenas no máximo 1 MB.
Redis: adiciona recursos de VM e rompe as limitações da memória física. O Redis oferece suporte a um tamanho máximo de valor-chave único de 512 MB.
4. Suporte à estrutura de dados
MemCached: Estrutura de dados única, usada apenas para armazenar dados em cache.
Redis: oferece suporte a tipos de dados mais ricos. Redis não apenas oferece suporte a dados simples do tipo k/v, mas também fornece armazenamento de estruturas de dados como lista, conjunto, zset e hash.
Operações avançadas em dados podem ser executadas diretamente no lado do servidor, o que pode reduzir os tempos de E/S da rede e o volume de dados.
5.Confiabilidade
Memcached: É apenas um cache de memória com baixos requisitos de confiabilidade. MemCached não oferece suporte à persistência de dados. Os dados desaparecem após uma queda de energia ou reinicialização, mas a estabilidade é garantida.
Redis: possui altos requisitos de confiabilidade, oferece suporte à persistência e recuperação de dados, permite pontos únicos de falha e também afeta algum desempenho. Suporta backup de dados, ou seja, backup de dados no modo mestre-escravo. Redis suporta persistência de dados. Ele pode salvar dados na memória em disco e carregá-los novamente para uso ao reiniciar.
6. Cenários de aplicação
Memcached: reduz a carga do banco de dados e melhora o desempenho em cache de sistemas dinâmicos, adequado para cenários de mais leitura, menos gravação e grande volume de dados;
Redis: Adequado para sistemas que exigem alta eficiência de leitura e gravação, negócios complexos de processamento de dados e altos requisitos de segurança.
1. instalação do redis
Desligue o firewall primeiro
- 先把防火墙关掉
- systemctl stop firewalld
- set setenforce 0
-
- [root@localhost ~]# yum -y install gcc* zlib-devel
- 解压 redis包
- [root@localhost ~]# tar xvzf redis-4.0.9.tar.gz
- [root@localhost ~]# cd redis-4.0.9/
-
- make
- 2:查看进程
- [root@localhost utils]# netstat -anpt | grep redis
-
- 3:redis服务控制
- [root@localhost ~]#/etc/init.d/redis_6379 stop
- [root@localhost ~]#/etc/init.d/redis_6379 start
- [root@localhost ~]#/etc/init.d/redis_6379 restart
- [root@localhost ~]#/etc/init.d/redis_6379 status
- 4.配置参数的修改
- [root@localhost ~]#vim /etc/redis/6379.conf
- bind 127.0.0.1 192.168.10.101 //监听的主机地址
- port 6379 //端口
- daemonize yes //启用守护进程
- pidfile /var/run/redis_6379.pid //指定 PID 文件
- loglevel notice //日志级别
- logfile /var/log/redis_6379.log //指定日志文件
-
- [root@localhost~]#/etc/init.d/redis_6379 restart
- [root@localhost utils]# netstat -anpt | grep redis
-
- 二:Redis 命令工具
- redis-server:用于启动 Redis 的工具;
- redis-benchmark:用于检测 Redis 在本机的运行效率;
- redis-check-aof:修复 AOF 持久化文件;
- redis-check-rdb:修复 RDB 持久化文件;
- redis-cli:Redis 命令行工具。
definir criar
obter visualização
chaves * ver tudo
renomear (substituirá)
renamenx (verifique se existe o mesmo nome e, em seguida, decida se deseja executar o comando rename)
del (o comando pode excluir a chave especificada do banco de dados atual)
existe (o comando pode determinar se o valor da chave existe)
type (use o comando type para obter o tipo de valor correspondente à chave)
selecione (trocar banco de dados)
mover (mover dados)
flushdb (limpa os dados atuais do banco de dados)
flushall (limpa todos os dados do banco de dados)
- -p:指定服务器端口;
- -s:指定服务器 socket;
- -c:指定并发连接数;
- -n:指定请求数;
- -d:以字节的形式指定 SET/GET 值的数据大小;
- -k:1=keep alive 0=reconnect;
- -r:SET/GET/INCR 使用随机 key, SADD 使用随机值;
- -P:通过管道传输<numreq>请求;
- -q:强制退出 redis。仅显示 query/sec 值;
- --csv:以 CSV 格式输出;
- -l:生成循环,永久执行测试;
- -t:仅运行以逗号分隔的测试命令列表;
- -I:Idle 模式。仅打开 N 个 idle 连接并等待。
Redis Todos os dados são armazenados na memória e, de tempos em tempos, salvos de forma assíncrona no disco.(Isso é chamado“Modo semipersistente”); Você também pode gravar todas as alterações de dados em um anexar somente arquivo(aof)em(Isso é chamado“Modo de persistência total”)。
porque Redis Todos os dados são armazenados na memória. Se a persistência não estiver configurada,Redis Após reiniciar, todos os dados serão perdidos.Portanto, é necessário habilitarRedis A função de persistência salva dados no disco. Redis Após uma reinicialização, os dados podem ser recuperados do disco.Redis Dois métodos são fornecidos para persistência, um é RDB(Banco de dados Redis) Persistência (o princípio é Reid-Re ...Tempo de registro do banco de dados na memória jogar fora para disco RDB persistência), o outro é AOF(anexar somente arquivo)Persistência (o princípio é Reid-Re ... O log de operação é gravado no arquivo de maneira anexada).
O método padrão
A persistência RDB é o processo de gerar um instantâneo dos dados do processo atual e salvá-los no disco rígido. O processo de acionamento da persistência RDB é dividido em acionamento manual e acionamento automático.
Mecanismo de disparo: O disparo manual corresponde aos comandos save e bgsave respectivamente.
Comando save: bloqueia o servidor Redis atual até que o processo RDB seja concluído. Para instâncias com grande quantidade de memória, isso causará bloqueio de tempo. Não recomendado para uso em ambientes online.
Comando bgsave: O processo Redis executa a operação fork (função usada para criar um processo) para criar um processo filho. O processo de persistência RDB é responsável pelo processo filho e termina automaticamente após a conclusão. O bloqueio ocorre apenas durante a fase de bifurcação.
Vantagens do RDB:
RDB é um arquivo binário compacto e compactado que representa um instantâneo dos dados do Redis em um determinado momento. É muito adequado para backup, cópia completa e outros cenários. Por exemplo, execute o backup bgsave a cada 6 horas e copie o arquivo RDB para a máquina remota ou sistema de arquivos para recuperação de desastres.
O Redis carrega RDB e recupera dados muito mais rápido que o método AOF.
Desvantagens do RDB:
Os dados no modo RDB não podem alcançar persistência em tempo real/persistência de segundo nível. Porque toda vez que o bgsave é executado, uma operação de bifurcação é executada para criar um processo filho, que é uma operação pesada e o custo da execução frequente é muito alto.
Os arquivos RDB são salvos em um formato binário específico Durante a evolução das versões do Redis, existem vários formatos de versões do RDB. Há um problema de que a versão antiga do serviço Redis não é compatível com a nova versão do formato RDB.
2. O que é AOF?
Persistência AOF (anexar apenas arquivo): registre cada comando de gravação em um log independente e, em seguida, execute novamente o comando no arquivo AOF para restaurar os dados ao reiniciar. A principal função do AOF é resolver o problema de persistência de dados em tempo real. Agora é a corrente principal da persistência do Redis.
Sacrifique algum desempenho em troca de maior consistência de cache (AOF),
Quando as operações de gravação são frequentes, não habilite o backup em troca de maior desempenho e aguarde a operação manual. salvar quando, faça um backup novamente (RDB)
Observação:
Se um arquivo persistente precisar ser carregado após a reinicialização do redies, os arquivos AOF serão selecionados.
Se o RDB for habilitado primeiro e depois o AOF for habilitado, e o RDB for persistido primeiro, o conteúdo do arquivo RDB será substituído pelo AOF.
[root@localhost ~]# vim /etc/redis/6379.conf
Abrir 6379.conf Após o arquivo, pesquise salvar, você pode ver as informações de configuração conforme mostrado abaixo.
existir Redis Existem três métodos de sincronização no arquivo de configuração, são eles:
sempre: persistência síncrona, sempre que os dados forem alterados, eles serão gravados no disco imediatamente
Everysec: recomendado por padrão, registre de forma assíncrona a cada segundo (valor padrão)
não: Sem sincronização, deixando para o sistema operacional decidir como sincronizar
Ignore a última instrução potencialmente problemática
[root@localhost ~]#/etc/init.d/redis_6379 reiniciar
a fim de resolver AOF Se o tamanho do arquivo continuar a aumentar, os usuários poderão reportar Redis enviar BGREWRITEAOFOrdem.BGREWRITEAOF O comando será removido via AOF comandos redundantes no arquivo para substituir (reescrever)AOFarquivo, faça AOF Mantenha o tamanho do arquivo o menor possível.
127.0.0.1:6379> bgrewriteaof
Reescrita de arquivo somente anexado em segundo plano iniciada
# Quando o log for BGREWRITEAOF,seno-appendfsync-na-reescritaDefinido como sim, o que significa que novas operações de gravação não serão sincronizadas com fsync, mas serão armazenadas apenas temporariamente no buffer. , para evitar conflitos de operação de E/S de disco, aguarde até que a reescrita seja concluída antes de gravar. O padrão no Redis é não
no-appendfsync-on-rewrite não
# Quando o tamanho do arquivo AOF atual é duas vezes maior que o tamanho do arquivo AOF durante a última reescrita do log, ocorre a operação BGREWRITEAOF.
auto-aof-rewrite-porcentagem 100
Observação:
100Refere-seaofA taxa de crescimento do arquivo refere-se à taxa de crescimento do arquivo AOF atual em comparação com a última reescrita.,100é duas vezes
#O valor mínimo do arquivo AOF atual para executar o comando BGREWRITEAOF para evitar BGREWRITEAOF frequente devido ao pequeno tamanho do arquivo quando o Reids é iniciado pela primeira vez.
auto-aof-rewrite-tamanho-mínimo 64mb
192.168.9.236:7001> informação memória
used_memory:1210776 #O tamanho da memória usada,em bytes
used_memory_human:1.15M # Display com unidade,em M
used_memory_rss:7802880 # Quanta memória o redis ocupa da perspectiva do sistema operacional?
used_memory_rss_human:7.44M # Exibição com unidade
maxmemory:1073741824 # Tamanho máximo da memória
maxmemory_human:1.00G # Display com unidade
política-de-memória-máxima: Estratégia de reciclagem
Ø volátil-lru: permite Redis Escolha o menos usado recentemente em todo o conjunto de dados chave Excluir
Ø volátil-ttl:de acordo comchaveprazo de validade para eliminação
Ø volátil-aleatório: Selecione aleatoriamente os dados para eliminação da coleta de dados com tempo de expiração definido;
Ø todas as chaves-lru:usar LRU Os algoritmos eliminam dados de todos os conjuntos de dados;
Ø todas as chaves-aleatórias: Selecione aleatoriamente os dados para eliminação da coleta de dados;
Ø não despejo: Desativa a eliminação de dados (valor padrão)
Observação:
Defina o tempo de expiração da chave
expirar v1 10
v1 tem um tempo de expiração de 10 segundos
Observação:
quando Redis Precisa recuperar um devido à pressão de memória chave hora,Redis A primeira consideração não é reciclar os dados mais antigos, mas sim os dados menos utilizados recentemente. chave ou prestes a expirar chave Escolha um aleatoriamente entre chave, removido do conjunto de dados
Encontre a palavra-chave requirepass, seguida da senha. Ela é comentada por padrão, ou seja, nenhuma senha é exigida por padrão, como segue:
Abra o comentário, defina-o como sua própria senha e reinicie
Use redis-cli para conectar-se ao redis e execute o seguinte comando
config set requirepass 123456
Após a conclusão da execução, não há necessidade de reiniciar. Você precisará inserir sua senha ao sair do cliente e fazer login novamente.
[root@localhost bin]# ./redis-cli -a 123456
[root@localhost bin]# ./redis-cli127.0.0.1:6379> auth 123456
[root@localhost bin]# ./redis-cli -a 123456 shutdown
1) A senha definida pela modificação do arquivo de configuração terá efeito permanente; a senha definida pelo comando terá efeito temporário e se tornará inválida após a reinicialização;
2) A modificação da senha definida no arquivo de configuração requer uma reinicialização para ter efeito; use a senha definida pelo comando para entrar em vigor após efetuar logout e login novamente, e ela se tornará inválida após a reinicialização.
3) A prioridade do comando é maior que a prioridade do arquivo de configuração