W rzeczywistości jest to tylko efekt, który domyślnie mierzy więcej we/wy niż rzeczywisty czas wykonania polecenia. Jeśli zaczniesz włączać potokowanie w benchmarku, będzie to nieco bardziej miara rzeczywistej wydajności polecenia, a liczby ulegną zmianie:
$ 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
Teraz GET jest szybszy :-)
Powinniśmy uwzględnić potokowanie na naszej stronie z dokumentacją porównawczą.
EDYTUJ: Tutaj jest to jeszcze bardziej widoczne:
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
To polecenie zapewnia czas procesora na obsługę żądania wewnętrznie, bez uwzględniania operacji we/wy. Przetwarzanie SET jest trzy razy wolniejsze.