Redis
 sql >> база данни >  >> NoSQL >> Redis

Абонирането на Python Redis не може да получи всички данни?

Предполагам, че използвате redis-py.

Документацията се отнася до listen като по-стара версия на lib... Може би трябва да използвате друг метод за четене на съобщения. Например с обратно повикване

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

Редактиране:

Възможно е вашият Redis сървър да свърши без памет, когато публикувате 20 000 съобщения наведнъж. Опитайте да увеличите паметта на redis в redis.conf файл

maxmemory 500mb # or greater if needed

Това е проблем с паметта, вижте този въпрос за повече информация как да се справите с него.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Вземете стойности по ключов модел в StackExchange.Redis

  2. Множество копия на Redis

  3. Rails Puma изчерпва връзките на Redis

  4. Сесията на NodeJS + ExpressJS + RedisStore е недефинирана

  5. .NET Core инжектиране на singleton услуга в друга singleton услуга