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

Kann Redis 6 Mehrkern-CPUs nutzen?

Basierend auf den Versionshinweisen denke ich, dass dies der Fall ist. Hier ist eine kleine Information von dort:

Trotz des wohlverdienten Rufs von Redis für hohe Leistung war seine Single-Thread-Architektur unter Ingenieuren umstritten, die sich fragten, ob Redis noch schneller sein könnte. Redis 6 läutet eine neue Ära ein:Während es eine Core-Single-Threaded-Datenzugriffsschnittstelle beibehält, ist I/O jetzt Threaded.

Durch das Delegieren der Zeit, die für das Lesen und Schreiben in E/A-Sockets aufgewendet wird, an andere Threads, kann der Redis-Prozess mehr Zyklen für die Bearbeitung, Speicherung und den Abruf von Daten aufwenden und so die Gesamtleistung steigern. Diese Verbesserung behält die Transaktionseigenschaften früherer Versionen bei, sodass Sie Ihre Anwendungen nicht überdenken müssen, um die gesteigerte Leistung zu nutzen. In ähnlicher Weise kann der Single-Threaded DEL-Befehl von Redis jetzt so konfiguriert werden, dass er sich wie der Multi-Thread-UNLINK-Befehl verhält, der seit Redis Version 4 verfügbar ist.

Die Leistung einer lokalen Variablen ist fast immer unschlagbar. Schließlich ist selbst eine so leistungsstarke Datenbank wie Redis viel langsamer als der Zugriff auf etwas vom Stack oder Heap. Redis 6 fügt eine neue Technik für anspruchsvolle Client-Bibliotheken hinzu, um eine clientseitige Caching-Schicht zu implementieren, um eine Teilmenge von Daten in Ihrem eigenen Prozess zu speichern. Diese Implementierung ist intelligent genug, um mehrere Aktualisierungen derselben Daten zu verwalten und Ihre Daten so synchron wie möglich zu halten – während die Vorteile von Redis mit der Geschwindigkeit lokaler Variablen beibehalten werden.

Sie können es auch mit Redis-Benchmark oder Memtier Harness für Ihr Instanz-/Workload-Profil prüfen/vergleichen.