Faktisk er dette kun en effekt af, at du som standard måler mere I/O end den faktiske kommandoudførelsestid. Hvis du begynder at aktivere pipelining i benchmark, er det lidt mere målet for den faktiske kommandoydelse, og tallene vil ændre sig:
$ 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
Nu er GET hurtigere :-)
Vi bør inkludere pipelining på vores benchmark-dokumentside.
EDIT: Dette er endnu mere tydeligt her:
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
Denne kommando giver CPU-tid til at betjene anmodningen internt uden at tage højde for I/O. SET er tre gange langsommere at behandle.