redis 连接问题
高洛峰
高洛峰 2016-11-11 09:53:59
0
1
1012

redis经常进行连接就会报错

redis.exceptions.ConnectionError: Error 99 connecting to 127.0.0.1:6379. Cannot assign requested address.

资料上说,redis经常进行连接,但是不关闭,端口不够用了。所以就去找了,pipeline进行连接,以为这样就能解决频繁的连接问题

def throw_on_redis(data):
    r = redis.Redis(config['host'], config['port'], config['db'])
    p = r.pipeline()
    return p.lpush(config['queue'],data)


def data_by_redis():
    r = redis.Redis(config['host'],config['port'],config['db'])
    p = r.pipeline()
    return p.blpop('urls').execute()

#
# for number in range(100000):
#     print throw_on_redis(number)

while True:
    print data_by_redis()

但是依然不行。想知道应该怎么处理这种情况,我用redis不可避免的出现频现往里面读(主要是读取)和写这种情况。

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

répondre à tous(1)
三叔

r.Close() 我猜有这个方法。

//建立了一个连接,但是没有释放。服务器仍然hang住了该tcp连接。
r = redis.Redis(config['host'], config['port'], config['db'])

=======题外话,上面的代码描述来看,其实是不需要每次请求都新建链接的。把redis.Redis(config['host'], config['port'], config['db'])作为全局变量来处理即可。


Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal