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

Redis hash velocidade de gravação muito lenta


Você precisa pensar um pouco mais sobre o que você realmente compara usando este programa. Posso dizer que não é Redis, mas sim a capacidade do seu sistema de executar um jogo de pingue-pongue entre dois processos (porque todas as suas chamadas hsetnx são síncronas).

Por favor, leia esta página antes de tentar fazer o benchmark do Redis, ela definitivamente o ajudará.

Sua suposição de que a velocidade do Redis deve se aproximar da velocidade de gravação da RAM é um pouco ingênua. Redis é um remoto store, e para operações O(1), a maior parte do overhead é devido aos custos de comunicação. Para tráfego síncrono (como seu exemplo), também é devido ao custo do agendador do SO.

Se você deseja aplicar muitos comandos em sequência, você precisa usar pipelining. Ou se você não se importa com a sequência, você pode trabalhar simultaneamente com várias conexões (este é o modo padrão para redis-benchmark). Ou você pode tentar enviar comandos assíncronos. Em todos os casos, a ideia é amortizar o custo das idas e voltas ao servidor Redis

Com o pipelining em várias conexões com tráfego assíncrono, você obterá a taxa de transferência máxima que o Redis pode alcançar nesta máquina.