Redis
 sql >> Base de données >  >> NoSQL >> Redis

Python redis subscribe ne peut pas obtenir toutes les données ?

Je suppose que vous utilisez redis-py.

La documentation fait référence à listen en tant qu'ancienne version de la lib... Peut-être devriez-vous utiliser une autre méthode pour lire les messages. Par exemple avec un rappel

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

Modifier :

Il est possible que votre serveur Redis manque de mémoire lorsque vous publiez 20 000 messages à la fois. Essayez d'augmenter la mémoire redis dans redis.conf fichier

maxmemory 500mb # or greater if needed

C'est un problème de mémoire, consultez cette question pour plus d'informations sur la façon de le gérer.