PHP predis连接到Redis Sentinel

时间:2016-06-30 16:07:35

标签: php redis predis redis-sentinel

我使用documented代码与predis服务器建立了新的PHP redis连接。我可以验证它连接好了,但我不知道如何简单地测试连接是否存在。

$options = array(
    'scheme' => 'tcp',
    'host' => '127.0.0.1',
    'port' => $port,
    'instance' => 'myinstance',
    'timeout' => '0.100' // possibly add this to connections?
);

$sentinels = [
    "tcp://{$options['host']}:{$options['port']}?timeout={$options['timeout']}",
];

$connection = new Predis\Client($sentinels, [
    'replication' => 'sentinel',
    'service' => $options['instance'],
]);

if ($connection->isConnected() === true) {
// undocumented-- I don't think this works?
    echo "connected";
} else {
    echo "failed"; // this is what gets echoed
}

有没有一种方法可以测试连接是否缺少实际的读/写功能? isConnected()似乎不起作用。

1 个答案:

答案 0 :(得分:0)

@drot建议:

  $ options = array(
    'scheme'=>'tcp',
    '主机'=>'127.0.0.1',
    '端口'=> $端口,
    'instance'=>'myinstance',
    'timeout'=>'0.100'//可能将其添加到连接中吗?
);

$ sentinels = [
   “ tcp:// {$ options ['host']}:{$ options ['port']}?timeout = {$ options ['timeout']}”,
];

$ connection =新的Predis \ Client($ sentinels,[
    '复制'=>'哨兵',
    'service'=> $ options ['instance'],
]);

// 做这个:
$ connection-> connect();

如果($ connection-> isConnected()=== true){
    //未记录-我认为这行不通吗?
    回显“已连接”;
}其他{
    回声“失败”; //这就是被呼应的东西
}