我正在开发一个 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);
?>