Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Redis é lento para obter strings grandes


O Redis não foi projetado para armazenar objetos muito grandes. Você não deve armazenar sua coleção inteira em uma única string no Redis, mas usar a lista Redis ou definir como um contêiner para seus objetos.

Além disso, o formato picles não é otimizado para espaço... você precisaria de um formato mais compacto. Protocol Buffers, MessagePack, ou mesmo JSON simples, provavelmente são melhores para isso. Você deve considerar aplicar um algoritmo de compactação leve antes de armazenar seus dados (como Snappy, LZO, Quicklz, LZF, etc ...).

Finalmente, o desempenho é provavelmente vinculado à rede. Na minha máquina, recuperar um objeto de 20 MB do Redis leva 85 ms (não 3 segundos). Agora, se eu executar o mesmo teste usando um servidor remoto, demora 1.781 segundos, o que é esperado nesta rede de 100 Mbit/s. A duração é totalmente dependente da largura de banda da rede.

Último ponto:certifique-se de usar uma versão recente do Redis - várias otimizações foram feitas para lidar com objetos grandes.