sql >> Database teknologi >  >> NoSQL >> Redis

Benchmarking-hentning fra redis vs hukommelse i python (ved hjælp af timeit)

I den sammenligning, du har lagt op her, måler du stort set bare, hvor lang tid det tager Python at binde et nyt navn til en værdi i det andet tilfælde. Så det overrasker mig ikke, at dette er langt hurtigere end at kommunikere med en anden proces (Redis). Jeg gætter på, at det, der overrasker mig, er, at du ville overveje at få en værdi fra Redis, hvis muligheden eksisterer blot for at gemme den i hukommelsen.

Så du skal være mere klar over, hvorfor du bruger Redis til dette i første omgang. Det vil altid være langsommere end in-proces hukommelse, der kræves ingen benchmark for det. Du skal spørge "hvorfor bruger jeg ikke bare Python-lister og ordbøger"? Der er flere gyldige svar:dine data er for store til at passe ind i hukommelsen, du har brug for de cache-specifikke funktioner som at tillade værdier at forsvinde efter et stykke tid, eller du vil bruge dem til IPC eller persistens. Når du kender svaret her, vil det informere om den benchmarking, du vil lave. Og spørgsmålet vil mere være som "Hvordan opnår jeg de fordele/funktioner, jeg har nævnt ovenfor, for den mindste præstationsstraf". Redis er måske ikke det eneste svar. Du kan overveje shelf for vedholdenhed, eller måske endda en komplet relationel database eller Mongo eller hvad som helst.

Kort sagt, når du først har en god idé om hvorfor, løser hvor ofte sig selv.




  1. Node.js Redis Connection Pooling

  2. Sådan bruger du ny URL fra mongodb 3.6 til at oprette forbindelse fra golang

  3. Hvordan kan jeg bruge en regex-variabel i en forespørgsel til MongoDB

  4. Hvornår skal jeg bruge en NoSQL-database i stedet for en relationsdatabase? Er det okay at bruge begge på samme side?