Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 15771|Resposta: 0

[Redis] 5 Coisas Que Você Deve Saber Antes de Usar Redis

[Copiar link]
Publicado em 29/12/2015 12:22:28 | | |
Desenvolver aplicações com Redis é um processo agradável, mas, como qualquer tecnologia, há algumas coisas que você precisa ter em mente ao projetar aplicações baseadas em Redis. Você pode já ter conhecido toda a rotina do desenvolvimento de banco de dados relacionais antes, e o desenvolvimento de aplicações baseado em Redis tem muitas semelhanças, mas você precisa ter em mente as seguintes duas coisas - o Redis é um banco de dados em memória e é single-thread. Portanto, ao usar Redis, você precisa prestar atenção aos seguintes pontos:
1. Controlar todas as chaves armazenadas no Redis
A principal função de um banco de dados é armazenar dados, mas é normal que os desenvolvedores ignorem alguns dados armazenados no banco de dados devido a mudanças nos requisitos de aplicação ou métodos de uso de dados, e o mesmo ocorre no Redis. Você pode deixar passar certos segredos que expiram, ou pode esquecer os dados porque um módulo da sua aplicação está obsoleto.
Em ambos os casos, o Redis armazena alguns dados que não estão mais em uso, ocupando espaço sem motivo. O padrão de dados fracamente estruturado de Redis dificulta descobrir o que está armazenado centralmente, a menos que você use uma nomenclatura muito madura para as chaves. Usar o método correto de nomenclatura simplifica o gerenciamento do seu banco de dados, e quando você cria um namespace para chaves através do seu aplicativo ou serviço (geralmente usando dois pontos para dividir nomes de chaves), você pode identificar facilmente os dados ao migrá-los, converter ou excluí-los.
Outro caso de uso comum do Redis é como um segundo repositório de dados para itens de dados quentes, onde a maior parte dos dados é armazenada em outros bancos de dados, como PostgreSQL ou MongoDB. Nesses casos de uso, os desenvolvedores frequentemente esquecem de excluir os dados correspondentes no Redis quando os dados são removidos do armazenamento principal. Nesse caso, a exclusão em cascata geralmente é necessária, caso em que pode ser alcançada salvando todos os identificadores para um item de dados específico na configuração do Redis, para garantir que, após a exclusão dos dados no banco de dados principal, um limpador seja chamado para excluir todas as cópias e informações relevantes.
2. Controlar o comprimento de todos os nomes-chave
Como dissemos acima, usamos convenções de nomenclatura apropriadas e adicionamos prefixos para identificar para onde os dados estão indo, então isso parece ir contra isso. No entanto, não se esqueça que o Redis é um banco de dados em memória, e quanto mais curtas as chaves, menos espaço você precisa. Naturalmente, quando há milhões ou bilhões de chaves em um banco de dados, o comprimento do nome da chave terá um grande impacto.
Por exemplo, em um servidor Redis de 32 bits, se você armazenar um milhão de chaves com comprimento de 32 caracteres, ele consumirá cerca de 96MB de espaço ao usar um nome de chave de 6 caracteres, mas se você usar um nome de chave de 12 caracteres, o consumo de espaço aumentará para cerca de 111MB. Com mais chaves, os 15% adicionais de sobrecarga terão um impacto significativo.
3. Use a estrutura de dados correta
Seja no uso ou desempenho de memória, às vezes estruturas de dados podem ter grande impacto, aqui estão algumas boas práticas para se referir:
Em vez de armazenar dados como milhares (ou milhões) de cadeias separadas, considere usar estruturas de dados hasheadas para agrupar dados relacionados. Tabelas de hash são muito eficientes e podem reduzir o uso de memória; Ao mesmo tempo, o hashing também é mais benéfico para abstração de detalhes e legibilidade de código.
Quando apropriado, use lista em vez de conjunto. Se você não precisar usar o recurso de set, o List pode oferecer velocidades mais rápidas que o set usando menos memória.
Conjuntos ordenados são as estruturas de dados mais caras, tanto em termos de consumo de memória quanto da complexidade das operações básicas. Se você só precisa de uma forma de consultar registros e não se importa em ordenar essas propriedades, é altamente recomendado usar tabelas hash.
Um recurso frequentemente negligenciado no Redis são os bitmaps ou conjuntos de bits (após a V2.2). Os conjuntos de bits permitem realizar múltiplas operações em nível de bit sobre valores do Rederis, como algumas análises leves.
4. Não use a chave ao usar o SCAN
A partir do Redis v2.8, o comando SCAN já está disponível, permitindo que chaves sejam recuperadas do keyspace usando o cursor. Comparado ao comando KEYS, embora o SCAN não possa devolver todos os resultados correspondentes de uma vez, ele evita o alto risco de bloquear o sistema, permitindo que algumas operações sejam executadas no nó mestre.
É importante notar que o comando SCAN é um iterador baseado em cursor. Cada vez que o comando SCAN é chamado, um novo cursor será devolvido ao usuário, e o usuário precisará usar esse novo cursor como parâmetro do cursor do comando SCAN na próxima iteração, para continuar o processo de iteração anterior. Ao mesmo tempo, com o SCAN, os usuários também podem ajustar comandos usando o modo de nome de chave e as opções de contagem.
Comandos relacionados ao SCAN também incluem comandos SSSCAN, comandos HSCAN e comandos ZSCAN, que são usados para coleções, chaves hash e sequências, respectivamente.
5. Usar scripts Lua do lado do servidor
No processo de uso do Redis, o suporte a scripts Lua certamente oferece aos desenvolvedores um ambiente de desenvolvimento muito amigável, libertando assim muito a criatividade dos usuários. Quando usados corretamente, scripts Lua podem trazer melhorias significativas em desempenho e consumo de recursos. Em vez de passar dados para a CPU, scripts permitem executar a lógica mais próxima dos dados, reduzindo a latência da rede e a transferência redundante de dados.
No Redis, um caso de uso muito clássico para Lua é filtrar ou agregar dados em uma aplicação. Ao encapsular o fluxo de processamento em um script, você pode simplesmente chamá-lo para obter uma resposta menor usando poucos recursos em menos tempo.
Dica profissional:O Lua é ótimo, mas também tem alguns problemas, como dificuldade para relatar e lidar com bugs. Uma abordagem inteligente é usar o recurso Pub/Sub do Redis e deixar o script enviar mensagens de log por um canal dedicado. Depois, crie um processo de assinante e processe de acordo.





Anterior:Redis. Componente open-source .NET Beetle.Redis
Próximo:Install-Package: O pacote Microsoft.Bcl 1.1.10 requer a versão 2.8.1 ou superior do cliente NuGet...
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com