sql >> Databasteknik >  >> NoSQL >> Redis

Varför är Redis SET-prestanda bättre än GET?

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.




  1. Redis:Hur man kommer åt Redis loggfil

  2. Hur man går med i ytterligare två samlingar med villkor

  3. Anpassade användaranslutningssträngar för MongoDB-instanser med autentisering

  4. Mongoose String till ObjectID