python连接redis有中文_python Redis连接

我在python中使用Redis服务器。在

我的应用程序是多线程的(每个进程使用20-32个线程),而且

我在不同的机器上运行这个应用程序。在

我注意到有时候Redis的cpu使用率是100%,Redis服务器变得无响应/慢。在

我想为每个应用程序使用1个连接池,共4个连接。

例如,如果我最多在20台机器上运行我的应用程序,应该有

20*4=80到redis服务器的连接。在POOL = redis.ConnectionPool(max_connections=4, host='192.168.1.1', db=1, port=6379)

R_SERVER = redis.Redis(connection_pool=POOL)

class Worker(Thread):

def __init__(self):

self.start()

def run(self):

while True:

key = R_SERVER.randomkey()

if not key: break

value = R_SERVER.get(key)

def _do_something(self, value):

# do something with value

pass

if __name__ = '__main__':

num_threads = 20

workers = [Worker() for _ in range(num_threads)]

for w in workers:

w.join()

当执行一个命令时,上面的代码应该运行从最大大小为4的连接池中获取连接的20个线程。在

当连接解除时?在

在执行每个命令之后,将释放连接并返回池

有人能验证我是否理解了这个想法是正确的,并且上面的示例代码将按描述的那样工作吗?在

因为当我看到redis连接时,总是有4个以上。在

编辑:我刚刚在代码中注意到函数在finally之前有一个return语句。那么最终的目的是什么?在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值