PHP实现的redis主从数据库状态检测功能示例


Posted in PHP onJuly 20, 2017

本文实例讲述了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数据库状态检测报错 邮件发送失败!'."\n";
    $content = str_replace("<br/>", "\n", $content);
    $message .= $content;
    error_log($message,3,"error.log");
  }
}

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

PHP 相关文章推荐
php中计算未知长度的字符串哪个字符出现的次数最多的代码
Aug 14 PHP
PHP时间戳与日期之间转换的实例介绍
Apr 19 PHP
php echo, print, print_r, sprintf, var_dump, var_expor的使用区别
Jun 20 PHP
php根据身份证号码计算年龄的实例代码
Jan 18 PHP
php+mysql实现无限分类实例详解
Jan 15 PHP
php+Mysqli利用事务处理转账问题实例
Feb 11 PHP
PHP中两个float(浮点数)比较实例分析
Sep 27 PHP
WordPress中用于获取文章作者与分类信息的方法整理
Dec 17 PHP
PHP正则获取页面所有图片地址
Mar 23 PHP
php图像验证码生成代码
Jun 08 PHP
PHP实现的基于单向链表解决约瑟夫环问题示例
Sep 30 PHP
PHP array_shift()用法实例分析
Jan 07 PHP
PHP实现的mysql主从数据库状态检测功能示例
Jul 20 #PHP
php检测mysql表是否存在的方法小结
Jul 20 #PHP
Laravel接收前端ajax传来的数据的实例代码
Jul 20 #PHP
php脚本守护进程原理与实现方法详解
Jul 20 #PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
Jul 20 #PHP
thinkphp3.2实现在线留言提交验证码功能
Jul 19 #PHP
ThinkPHP框架表单验证操作方法
Jul 19 #PHP
You might like
php数组函数序列之each() - 获取数组当前内部指针所指向元素的键名和键值,并将指针移到下一位
2011/10/31 PHP
作为PHP程序员应该了解MongoDB的五件事
2013/06/03 PHP
在PHP上显示JFreechart画的统计图方法
2013/11/03 PHP
PHP连接SQLServer2005方法及代码
2013/12/26 PHP
PHP随机生成信用卡卡号的方法
2015/03/23 PHP
CodeIgniter分页类pagination使用方法示例
2016/03/28 PHP
PHP-FPM运行状态的实时查看及监控详解
2016/11/18 PHP
doctype后如何获得body.clientHeight的方法
2007/07/11 Javascript
jquery时间下拉框小例子
2013/04/15 Javascript
基于canvas实现的钟摆效果完整实例
2016/01/26 Javascript
Node.js编写组件的三种实现方式
2016/02/25 Javascript
jQuery实现的简单分页示例
2016/06/01 Javascript
AngularJS基础 ng-non-bindable 指令详细介绍
2016/08/02 Javascript
bootstrap的3级菜单样式,支持母版页保留打开状态实现方法
2016/11/10 Javascript
Bootstrap Table从零开始
2017/06/30 Javascript
vue2.0 可折叠列表 v-for循环展示的实例
2018/09/07 Javascript
JS实现十分钟倒计时代码实例
2018/10/18 Javascript
解决vue更新路由router-view复用组件内容不刷新的问题
2019/11/04 Javascript
[58:58]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第二场
2018/04/05 DOTA
Python 深入理解yield
2008/09/06 Python
Python中处理字符串的相关的len()方法的使用简介
2015/05/19 Python
python下调用pytesseract识别某网站验证码的实现方法
2016/06/06 Python
python处理csv数据动态显示曲线实例代码
2018/01/23 Python
python解压TAR文件至指定文件夹的实例
2019/06/10 Python
python颜色随机生成器的实例代码
2020/01/10 Python
idea2020手动安装python插件的实现方法
2020/07/17 Python
Hotels.com台湾:饭店订房网
2017/09/06 全球购物
一套比较完整的软件测试人员面试题
2012/05/13 面试题
GWT的应用有哪两种部署模式
2012/12/21 面试题
研究生求职推荐信范文
2013/11/30 职场文书
大学校园活动策划书
2014/02/04 职场文书
决心书范文
2014/03/11 职场文书
优秀的应届生自荐信
2014/05/23 职场文书
毕业生党员个人总结
2015/02/14 职场文书
盘点2020年适合农村地区创业的项目
2019/10/16 职场文书
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
2022/04/13 Python