sql >> Databasteknik >  >> NoSQL >> Redis

Benchmarking-hämtning från redis vs minne i python (med timeit)

I jämförelsen du har lagt upp här mäter du i princip bara hur lång tid det tar för Python att binda ett nytt namn till ett värde i det andra fallet. Så det förvånar mig inte att detta är mycket snabbare än att kommunicera med en annan process (Redis). Jag antar att det som förvånar mig är att du skulle överväga att få ett värde från Redis om alternativet finns att bara behålla det i minnet.

Så du måste vara mer tydlig med varför du använder Redis för detta i första hand. Det kommer alltid att vara långsammare än processminne, inget riktmärke behövs för det. Du måste fråga "varför använder jag inte bara Python-listor och ordböcker"? Det finns flera giltiga svar:din data är för stor för att passa in i minnet, du behöver cachespecifika funktioner som att tillåta värden att försvinna efter ett tag, eller så vill du använda den för IPC eller persistens. När du vet svaret här, kommer det att informera om den benchmarking du vill göra. Och frågan kommer att vara mer som "Hur får jag fördelarna/funktionerna jag har listat ovan för minsta prestationsstraff". Redis kanske inte är det enda svaret. Du kan överväga shelf för uthållighet, eller kanske till och med en komplett relationsdatabas eller Mongo eller vad som helst.

Kort sagt, när du väl har en bra uppfattning om varför så löser sig hur ofta av sig själv.




  1. Topp MongoDB-resurser

  2. Skapa en öppen standard:styrning av maskininlärning med Apache Atlas

  3. TypeError:db.collection är inte en funktion

  4. MongoDB 3 Java kontrollera om samlingen finns