PHPによるredisマスタスレーブデータベース状態検出機能例

2583 ワード

この例では、PHPによって実装されるredisプライマリ・スレーブ・データベースの状態検出機能について説明します.皆さんの参考にしてください.具体的には以下の通りです.
例:

array(
    'hostname' => '127.0.0.1',
    'port' => 6379,
    'password' => '',
  ),
  'db2'=>array(
    'hostname' => '192.168.2.179',
    'port' => 6379,
    'password' => '111111',
  ),
);
$content = '';
foreach ($redis_db as $db_key) {
  $host = $db_key['hostname'];
  $port = $db_key['port'];
  $redis = new Redis();
  //      Redis   
  $status= $redis->connect($host, $port);
  if(!$status) {
    $content .= "redis    ( $host )     ! 
"; continue; } if(!empty($db_key['password'])) { $pass = $redis->auth($db_key['password']); if(!$pass) { $content .= "redis ( $host ) !
"; continue; } } try { $config = $redis->info(); if('up' == $config['master_link_status']) { } else { $content .= "redis ( $host ) !
"; } } catch(RedisException $e) { $content .= "redis ( $host ) :" . $e->getMessage()."
"; } } // , if(!empty($content)) { $title = ' redis '; $content = date("Y-m-d H:i:s",time()) . "
" . $content; $sendurl = "http://localhost/api.com/test.php?title=".$title."&content=".$content; $result = file_get_contents($sendurl); if('ok' != $result) { $message = date("Y-m-d H:i:s",time()).' redisSlave.php redis !'."
"; $content = str_replace("
", "
", $content); $message .= $content; error_log($message,3,"error.log"); } }

PHPについてもっと兴味のある読者は、「php+redisデータベースプログラミングテクニック総括」、「phpオブジェクト向けプログラミング入門チュートリアル」、「PHP基本文法入門チュートリアル」、「PHPネットワークプログラミングテクニック総括」、「PHP配列(Array)操作テクニック大全」、「php文字列(string)使い方総括」、「php+mysqlデータベース操作入門チュートリアル」および「php一般データベース操作テクニック要約」
ここで述べたことが皆さんのPHPプログラム設計に役立つことを願っています.