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

Python Redis Subscribe kann nicht alle Daten abrufen?

Ich nehme an, Sie verwenden redis-py.

Die Dokumentation bezieht sich auf listen als ältere Version der Bibliothek ... Vielleicht sollten Sie eine andere Methode zum Lesen von Nachrichten verwenden. Zum Beispiel mit einem Rückruf

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()

Bearbeiten:

Es ist möglich, dass Ihrem Redis-Server der Speicher ausgeht, wenn Sie 20000 Nachrichten auf einmal veröffentlichen. Versuchen Sie, den Redis-Speicher in redis.conf zu erhöhen Datei

maxmemory 500mb # or greater if needed

Es handelt sich um ein Speicherproblem. Weitere Informationen zur Handhabung finden Sie in dieser Frage.