Egentligen är detta bara en effekt av att du som standard mäter mer I/O än den faktiska kommandots exekveringstiden. Om du börjar aktivera pipelining i riktmärket är det lite mer måttet på den faktiska kommandoprestanda, och siffrorna kommer att ändras:
$ 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 är GET snabbare :-)
Vi bör inkludera pipelining i vår referensdokumentsida.
EDIT: Detta är ännu tydligare här:
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
Detta kommando ger CPU-tid för att betjäna begäran internt, utan att ta hänsyn till I/O. SET är tre gånger långsammare att bearbeta.