Este guia analisará o comprimento da chave e seu impacto no Redis.
Redis Comprimento da chave
As chaves Redis são seguras binárias. Isso significa que qualquer sequência binária pode servir como uma chave. Pode ser qualquer coisa - uma string, conteúdo de um arquivo jpeg e mais. Uma string vazia também é uma chave válida.
No entanto, há um limite para o tamanho da chave máxima (512 MB). O mesmo vale para o tamanho do valor (512 MB de qualquer tipo de dados).
O comprimento da chave adequado depende do contexto. Na maioria dos casos, no entanto, as chaves muito longas ou curtas são melhor evitadas.
Contras de teclas longas
Se você está definindo uma chave muito longa, ela vem com custos de desempenho. Procurar a chave no banco de dados Redis pode exigir várias comparações importantes caras. Na eficiência da memória, as teclas longas são bastante ineficientes de memória.
Se você precisar usar teclas longas, considere as hash com bons algoritmos, como SHA1, SHA256, etc. Em troca de um pouco mais de poder de processamento, a carga na memória é significativamente reduzida, sem mencionar a elevação do desempenho.
Por exemplo, uma chave de 1024 bytes resultará em menos desempenho e maior consumo de memória. Se for hashed usando SHA256, o tamanho é reduzido para 256 bits (32 bytes), mantendo uma posição única no servidor Redis.
Contras de chaves curtas
O outro lado do espectro está usando teclas concisas. A partir do exemplo anterior, o comprimento da chave de encurtamento é preferível para benefícios de desempenho e eficiência de recursos. No entanto, sacrificar a clareza pelo leve elevação de desempenho muitas vezes não vale a pena.
Vamos quebrá -lo com um exemplo. Considere a chave U5000F como uma forma reduzida de Usuário: 5000: seguidores. Enquanto U5000F é a melhor opção em termos de desempenho, é uma opção terrível quando implementada no código.
Para iniciantes, o nome da chave é bastante inintivo. Também não tem uma indicação clara de qual é o seu propósito. É a semente perfeita para desastre na linha. À medida que a base de código aumenta, os códigos confusos se tornam mais difíceis de manter. Em vez disso, usando Usuário: 5000: seguidores oferece um ótimo equilíbrio entre desempenho e conveniência.
O que acontece se Redis ficar sem memória
Redis pode lidar com um grande número de chaves. Foi projetado para lidar com até 2^32 chaves! De acordo com as perguntas frequentes do Redis, o software é testado com estresse com 250 milhões de chaves. Em outras palavras, é mais provável que você fique sem memória do sistema antes de atingir o limite de Redis.
No entanto, o que acontece quando Redis atinge a capacidade máxima de memória? Redis vem com proteções internas, como limitar o uso máximo de memória com a ajuda da Diretiva MaxMemory no arquivo de configuração Redis.
$ sudo nano/etc/redis/redis.conf
Se Redis atingir o limite de memória, ele retornará um erro aos novos comandos de gravação. No entanto, ele ainda responderá normalmente para ler comandos.
Conclusão
Neste guia, discutimos o comprimento da chave máxima que Redis aceita. Também discutimos a política de gerenciamento quando Redis excede o limite de memória atribuído. Com esse conhecimento, você pode decidir como implementar o Redis em seus aplicativos e scripts.
Falando em scripts, saiba mais sobre a incorporação do Redis com Lua, Golang, Ruby, etc. Precisa personalizar o comportamento Redis? Saiba mais sobre o arquivo de configuração Redis.