2012-06-07 19 views
21

¿Se puede usar la biblioteca redis-py con gevent?redis-py con gevent

¿Alguien tiene experiencia ejecutando la biblioteca redis-py con gevent? Hay un ejemplo de trabajo?

¿Juegan bien juntos? ¿Hay alguna precaución o truco para que funcionen a escala?

La pregunta en otras palabras:

para hacer Redis-Py conexiones utilizan Verdecillo GEvent, qué tengo que hacer nada especial aparte de los zócalos monkeypatch?

from gevent import monkey 

monkey.patch_all() 

y luego usar redis-py como de costumbre?

Respuesta

17

Sí, redis-py funciona bien con gevent.

Puede verificar mi respuesta a la siguiente pregunta: encontrará un ejemplo y algunas observaciones.

redis + gevent - Poor performance - what am I doing wrong?

La trampa principal es considerar que debido a GEvent es asíncrona y los enchufes están monkeypatched, el costo de ida y vuelta a Redis mágicamente desaparecerá. Esto es completamente incorrecto.

gevent es principalmente interesante cuando se utilizan varias conexiones al mismo tiempo, por lo que las llamadas al sistema de bucle de eventos se pueden factorizar. Si el código de usuario genera una gran cantidad de viajes de ida y vuelta sincrónicos a Redis en un número pequeño de conexiones, implicará latencia, incluso si gevent administra estas conexiones de forma asincrónica.

Por lo tanto, incluso con gevent, la canalización siempre se debe utilizar para optimizar el costo de la comunicación.

+0

Hola querido, en realidad no me importa mucho la latencia, lo que realmente me importa es tener un gran número de conexiones, sin los hilos o procesos heavyweght – Joseph

+0

¿Cuál es la conclusión? También tengo la intención de usar gevent con redis. ¿Alguna idea para mostrar un ejemplo? – Mark

Cuestiones relacionadas