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

Was ist der mittlere Unterschied zwischen Nest- und Redis-Namespace-Edelsteinen, wenn wir Redis mit Rails/Ruby verwenden?

Haftungsausschluss:Ich bin der Autor von Nest.

Sie können dasselbe mit beiden Bibliotheken erreichen, und ich denke, das Hauptunterscheidungsmerkmal zwischen diesen Tools ist ihre interne Komplexität. Während Nest Ihnen nur bei der Darstellung von Strukturen mit flachen Schlüsseln hilft, hat Redis::Namespace eine Übersetzungstabelle für jeden Befehl und ist daher anfälliger und CPU-intensiver.

Werfen Sie einen Blick auf den Quellcode beider Tools, um zu sehen, was ich meine:

https://github.com/soveran/nest/blob/master/lib/nest.rb

https://github.com/resque/redis-namespace/blob/master/lib/redis/namespace.rb

Die richtige Lösung für das von Ihnen beschriebene Problem besteht jedoch darin, separate Redis-Instanzen für verschiedene Projekte zu haben. Bedenken Sie, dass der Schlüsselraum nur ein zu berücksichtigender Aspekt ist (der auch mit den verschiedenen von Redis bereitgestellten DBs leicht gelöst werden könnte). Die anderen Aspekte (Persistenzstrategie, Verbindungs- und Speicherbeschränkungen, Schlüsselentfernungen usw.) werden normalerweise je nach Art des Projekts fein abgestimmt.

Eine weitere wichtige Tatsache ist, dass Redis Single-Threading ist und viele Anwendungen es verwenden, müssen Sie denselben Kern für alle Anforderungen gemeinsam nutzen. Vor diesem Hintergrund hilft Ihnen das Vorhandensein verschiedener Redis-Instanzen bei der Parallelisierung der Arbeit.