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

Redis Hash sehr langsame Schreibgeschwindigkeit

Sie müssen ein bisschen mehr darüber nachdenken, was Sie wirklich mit diesem Programm messen. Ich kann Ihnen sagen, dass es nicht Redis ist, sondern die Fähigkeit Ihres Systems, ein Ping-Pong-Spiel zwischen zwei Prozessen auszuführen (weil alle Ihre hsetnx-Aufrufe synchron sind).

Bitte lesen Sie diese Seite, bevor Sie versuchen, Redis zu bewerten, sie wird Ihnen definitiv helfen.

Ihre Annahme, dass die Geschwindigkeit von Redis sich der Schreibgeschwindigkeit von RAM annähern sollte, ist etwas naiv. Redis ist eine Fernbedienung speichern, und für O(1)-Operationen ist der größte Teil des Overheads auf die Kommunikationskosten zurückzuführen. Bei synchronem Datenverkehr (wie in Ihrem Beispiel) liegt dies auch an den Kosten des Betriebssystem-Schedulers.

Wenn Sie viele Befehle nacheinander anwenden möchten, müssen Sie Pipelining verwenden. Oder wenn Ihnen die Reihenfolge egal ist, können Sie mit mehreren Verbindungen gleichzeitig arbeiten (dies ist der Standardmodus für redis-benchmark). Oder Sie können stattdessen versuchen, asynchrone Befehle zu senden. In allen Fällen besteht die Idee darin, die Kosten für die Roundtrips zum Redis-Server zu amortisieren

Durch Pipelining auf mehreren Verbindungen mit asynchronem Datenverkehr erhalten Sie den maximalen Durchsatz, den Redis auf diesem Computer erreichen kann.