Maison  >  Article  >  développement back-end  >  Méthode de détection de l'état de la base de données maître-esclave Redis implémentée en PHP

Méthode de détection de l'état de la base de données maître-esclave Redis implémentée en PHP

墨辰丷
墨辰丷original
2018-05-19 10:45:591493parcourir

Cet article présente principalement la fonction de détection de l'état de la base de données maître-esclave Redis implémentée par PHP, impliquant la connexion, la détection, la sortie de messages d'erreur et l'envoi d'e-mails de compétences opérationnelles liées à plusieurs bases de données maître-esclave Redis. Les amis dans le besoin peuvent se référer au . suivant

Exemple :

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

Recommandations associées :

La méthode d'installation de la base de données Redis sous Linux et le script de démarrage automatique sont partagés

implémentation php de la base de données redis méthode de spécification du numéro de bibliothèque migration, base de données redistutoriel _PHP

implémentation PHP de la base de données redisSpécification de la méthode de migration du numéro de bibliothèque_tutoriel PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn