sql >> Base de Datos >  >> NoSQL >> Redis

¿Cuál es la diferencia media entre las gemas Nest y Redis-namespace cuando usamos Redis con Rails/Ruby?

Descargo de responsabilidad:soy el autor de Nest.

Puede lograr lo mismo con ambas bibliotecas, y creo que el principal diferenciador entre esas herramientas es su complejidad interna. Si bien Nest solo lo ayuda a representar la estructura con teclas planas, Redis::Namespace tiene una tabla de traducción para cada comando y, por lo tanto, es más frágil y requiere un uso intensivo de la CPU.

Eche un vistazo al código fuente de ambas herramientas para ver a qué me refiero:

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

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

Dicho esto, la solución correcta al problema que describió es tener instancias de Redis separadas para diferentes proyectos. Tenga en cuenta que el espacio de claves es solo un aspecto a tener en cuenta (que también podría resolverse fácilmente con los diferentes DB proporcionados por Redis). Los demás aspectos (estrategia de persistencia, límites de conexión y memoria, expulsión de claves, etc.) suelen ajustarse según la naturaleza del proyecto.

Otro hecho importante es que Redis es de subproceso único, y muchas aplicaciones lo utilizan, por lo que está sujeto a compartir el mismo núcleo para todas las solicitudes. Con eso en mente, tener diferentes instancias de Redis lo ayuda a paralelizar el trabajo.