本文实例讲述了PHP实现的redis主从数据库状态检测功能。分享给大家供大家参考,具体如下:

实例:

<?php/** * 检测多个主从redis数据库是否挂掉 * 建立从数据库$redis_db的二维数组,内容包含每个从服务器的配置数据 */header("Content-Type: text/html; charset=utf-8");set_time_limit(0);$redis_db = array(  "db1"=>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 )无法连接 ! <br/>";    continue;  }  if(!empty($db_key["password"])) {    $pass = $redis->auth($db_key["password"]);    if(!$pass) {      $content .= "redis从数据库( $host )密码错误 ! <br/>";      continue;    }  }  try {    $config = $redis->info();    if("up" == $config["master_link_status"]) {    } else {      $content .= "redis从数据库( $host )挂掉了! <br/>";    }  }  catch(RedisException $e)  {    $content .= "redis从数据库( $host )报错:" . $e->getMessage()."<br/>";  }}//若报错信息不为空,发送报错邮件if(!empty($content)) {  $title = "主从redis数据库状态检测报错 ";  $content = date("Y-m-d H:i:s",time()) . "<br/>" . $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("<br/>", "", $content);    $message .= $content;    error_log($message,3,"error.log");  }}

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php+redis数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《PHP基本语法入门教程》、《PHP网络编程技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。