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

¿Python redis subscribe no puede obtener todos los datos?

Supongo que estás usando redis-py.

La documentación se refiere a listen como versión anterior de lib... Tal vez debería usar otro método para leer mensajes. Por ejemplo, con una devolución de llamada

p = r.pubsub()

def my_handler(message):
    print 'MY HANDLER: ', message['data']
    if item['type'] == 'message':
         num += 1
         a.parser(item['data'])
         print num

p.subscribe('bdwaf', my_handler)
# read the subscribe confirmation message
p.get_message()

Editar:

Es posible que su servidor redis se esté quedando sin memoria cuando publica 20000 mensajes a la vez. Intente aumentar la memoria redis en redis.conf archivo

maxmemory 500mb # or greater if needed

Es un problema de memoria, consulte esta pregunta para obtener más información sobre cómo manejarlo.