我使用python从redis获取数据,然后将其解析到kafka。它在大多数情况下都很有效。在
但是当我使用python来模拟将数据构建到redis中时,或者在queuen中有一个快速的输入数据,我不能得到所有的数据。在
下面是我关于redis producer模拟生成20000个数据到redis的代码:
rc = redis.Redis(host='127.0.0.1', port=6379)
rc.ping()
ps = rc.pubsub()
ps.subscribe('bdwaf')
r_str = "--8198b507-A--\n[22/Jun/2017:14:13:19 +0800]ucTcxcMcicAcAcAcicAcAcAm 192.168.1.189 50054 127.0.0.1 80\n"
for i in range(0, 20000):
rc.publish('bdwaf', r_str)
而redis的消费者也是卡夫卡的生产商是:
^{pr2}$它只打印出大约4000个数据。在
如果我注释a.parser(item['data'])
,它可以打印出所有的datas num
或者wirtesleep(0.001)
在redis producer中,它也可以打印出所有的数据编号。在
我的代码怎么了?在
我假设您使用的是redis-py。在
文档将
listen
称为lib的旧版本。。。也许你应该用另一种方法来阅读信息。例如回调编辑:
当您一次发布20000条消息时,您的redis服务器可能内存不足。尝试在
^{pr2}$redis.conf
文件中增加redis内存这是一个内存问题,请查看this问题以了解有关如何处理它的详细信息。在
相关问题 更多 >
编程相关推荐