Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

A assinatura redis do Python não pode obter todos os dados?


Eu suponho que você esteja usando redis-py.

A documentação se refere a listen como uma versão mais antiga da lib... Talvez você deva usar outro método para leitura de mensagens. Por exemplo, com um retorno de chamada
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:

É possível que seu servidor redis esteja ficando sem memória quando você publicar 20.000 mensagens de uma vez. Tente aumentar a memória redis em redis.conf Arquivo
maxmemory 500mb # or greater if needed

É um problema de memória, confira esta pergunta para obter mais informações sobre como lidar com isso.