predis接続redis sentinelとredis cluster
開発前はphpredisでredisサービスに接続していたが、sentinelとredis clusterの成熟に伴い、redis主従者はsentinelと結合して高可用性を行い、一部のデータと同時の大きなビジネスでredisクラスタを使用した.
phpredisに対して、predisはredis sentinelとredis clusterの接続を原生的にサポートし、プライマリノードがプライマリノードからプライマリノードへの昇格を停止すると、クライアントは自動的に新しいプライマリノードを発見し、redisの高可用性を実現する.
一部のphperはpredisでsentinelとclusterを接続することを知らないので、わざわざpredisのドキュメントを見て、2つのdemoを書きました.
predis接続redis cluster:クラスタに接続するときは、1つのノードまたは一部のノードの情報しか構成できません.ここでの構成はクラスタ内のノードを発見するためであり、接続さえすればクラスタ全体を成功に発見できるノードが1つある限りですが、1つのノードのみを配置することは推奨されません.
predis接続redis sentinel:
詳細な使い方はgithubを参照してください.https://github.com/nrk/predis
phpredisに対して、predisはredis sentinelとredis clusterの接続を原生的にサポートし、プライマリノードがプライマリノードからプライマリノードへの昇格を停止すると、クライアントは自動的に新しいプライマリノードを発見し、redisの高可用性を実現する.
一部のphperはpredisでsentinelとclusterを接続することを知らないので、わざわざpredisのドキュメントを見て、2つのdemoを書きました.
predis接続redis cluster:クラスタに接続するときは、1つのノードまたは一部のノードの情報しか構成できません.ここでの構成はクラスタ内のノードを発見するためであり、接続さえすればクラスタ全体を成功に発見できるノードが1つある限りですが、1つのノードのみを配置することは推奨されません.
'redis');
$client = new Predis\Client($servers, $options);
$i=0;
for($i=0;$i<100000;$i++){
try
{
$client->set($i, "test".$i);
$result = $client->get($i);
echo date('y-m-d h:i:s',time());
echo " ".$result."
";
}
catch(Exception $e)
{
echo date('y-m-d h:i:s',time());
echo " ".'Message: ' .$e->getMessage()."
";
}
sleep(1);
}
?>
predis接続redis sentinel:
'sentinel', 'service' => 'master1'];
$client = new Predis\Client($sentinels, $options);
date_default_timezone_set('Asia/Shanghai');
$i=0;
for($i=0;$i<100000;$i++){
$client->set($i, "test".$i);
$result = $client->get($i);
echo date('y-m-d h:i:s',time());
echo " ".$result."
";
sleep (1);
}
?>
詳細な使い方はgithubを参照してください.https://github.com/nrk/predis