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

Por que o desempenho do Redis SET é melhor que o GET?


Na verdade, este é apenas um efeito que, por padrão, você mede mais E/S do que o tempo real de execução do comando. Se você começar a habilitar o pipeline no benchmark, é um pouco mais a medida do desempenho real do comando, e os números mudarão:
$ redis-benchmark -q -n 1000000 -P 32 set foo bar
set foo bar: 338964.03
$ redis-benchmark -q -n 1000000 -P 32 get foo
get foo: 432713.09 requests per second

Agora GET é mais rápido :-)

Devemos incluir o pipeline em nossa página do documento de referência.

EDITAR: Isso fica ainda mais evidente aqui:
redis 127.0.0.1:6379> info commandstats
# Commandstats
cmdstat_get:calls=1001568,usec=221845,usec_per_call=0.22
cmdstat_set:calls=831104,usec=498235,usec_per_call=0.60

Este comando fornece tempo de CPU para atender a solicitação internamente, sem contabilizar E/S. SET é três vezes mais lento para processar.