Redis
 sql >> Base de données >  >> NoSQL >> Redis

Pourquoi les performances de Redis SET sont-elles meilleures que celles de GET ?

En fait, ce n'est qu'un effet du fait que, par défaut, vous mesurez plus d'E/S que le temps d'exécution réel de la commande. Si vous commencez à activer le pipelining dans le benchmark, c'est un peu plus la mesure des performances réelles de la commande, et les chiffres changeront :

$ 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

Maintenant GET est plus rapide :-)

Nous devrions inclure le pipelining dans notre page de documentation de référence.

MODIF : C'est encore plus évident ici :

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

Cette commande fournit du temps CPU pour traiter la demande en interne, sans tenir compte des E/S. SET est trois fois plus lent à traiter.