我正在使用Web服务,我正在使用Predis作为redis库,我希望客户端能够重用相同的TCP套接字。
目前,在我的服务上运行负载测试后,我发现在服务器上TIME_WAIT状态的套接字数量增加很快,并且在某些时候,与Redis服务器的连接被拒绝。
根据Redis文档使用PhpiredisStreamConnection和presistant选项修复了问题,但在将此添加到我的连接代码后,我仍然面临同样的问题。有什么想法吗?
我正在使用TCP连接,因为redis实例不在前端服务器上。
<?php
include 'autoload.php';
$parameters = array(
'tcp://some.host01:6379?database=0&alias=master&persistent=1',
'tcp://some.host02:6379?database=0&alias=slave&persistent=1',
);
$options = array( 'replication' => true ,
'connections' => array('tcp' => 'Predis\Connection\PhpiredisStreamConnection','unix' => 'Predis\Connection\PhpiredisStreamConnection') );
$predis = new Predis\Client($parameters, $options);
?>
答案 0 :(得分:2)
根据文档,当php进程配置为持久进程时,Predis适用于持久连接。请查看以下内容以获取更多详细信息:
https://github.com/joindin/joindin-web2/blob/master/vendor/predis-0.8/FAQ.md