Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Benchmarking-Abruf aus Redis vs. Speicher in Python (mit Timeit)

In dem Vergleich, den Sie hier aufgestellt haben, messen Sie im Grunde nur, wie lange Python braucht, um im zweiten Fall einen neuen Namen an einen Wert zu binden. Daher überrascht es mich nicht, dass dies erheblich schneller ist als die Kommunikation mit einem anderen Prozess (Redis). Ich denke, was mich überrascht, ist, dass Sie erwägen würden, einen Wert von Redis zu erhalten, wenn die Option besteht, ihn einfach im Speicher zu behalten.

Sie müssen sich also klarer darüber sein, warum Sie Redis überhaupt dafür verwenden. Es wird immer langsamer als In-Process-Speicher sein, dafür ist kein Benchmark erforderlich. Sie müssen sich fragen:"Warum verwende ich nicht nur Python-Listen und -Wörterbücher?" Es gibt mehrere gültige Antworten:Ihre Daten sind zu groß, um in den Speicher zu passen, Sie benötigen Cache-spezifische Funktionen wie das Verschwinden von Werten nach einer Weile, oder Sie möchten sie für IPC oder Persistenz verwenden. Sobald Sie die Antwort hier kennen, wird dies das Benchmarking beeinflussen, das Sie durchführen möchten. Und die Frage wird eher lauten wie "Wie erhalte ich die Vorteile/Funktionen, die ich oben aufgeführt habe, um die geringste Leistungseinbuße zu erzielen". Redis ist möglicherweise nicht die einzige Antwort. Sie können shelf in Betracht ziehen für Persistenz, oder vielleicht sogar eine vollständige relationale Datenbank oder Mongo oder was auch immer.

Kurz gesagt, sobald Sie eine gute Vorstellung davon haben, warum, löst sich das Wie oft von selbst.