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 相关文章推荐
非常不错的MySQL优化的8条经验
Mar 24 PHP
PHP网站基础优化方法小结
Sep 29 PHP
web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验
Jun 01 PHP
php中apc缓存使用示例
Dec 25 PHP
使用PHP强制下载PDF文件示例
Jan 17 PHP
在Windows XP下安装Apache+MySQL+PHP环境
Feb 22 PHP
php显示时间常用方法小结
Jun 05 PHP
ThinkPHP中session函数详解
Sep 14 PHP
PHP实现打包下载文件的方法示例
Oct 07 PHP
详解PHP中的外观模式facade pattern
Feb 05 PHP
PHP PDOStatement::nextRowset讲解
Feb 01 PHP
PHP删除数组中特定元素的两种方法
Feb 28 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实现的简单AES加密解密算法实例
2017/05/29 PHP
CakePHP框架Model关联对象用法分析
2017/08/04 PHP
YII分模块加载路由的实现方法
2018/10/01 PHP
可以显示单图片,多图片ajax请求的ThickBox3.1类下载
2007/12/23 Javascript
Jquery工作常用实例 使用AJAX使网页进行异步更新
2011/07/26 Javascript
自动刷新网页,自动刷新当前页面,JS调用
2013/06/24 Javascript
jQuery阻止事件冒泡具体实现
2013/10/11 Javascript
简单的Jquery全选功能
2013/11/07 Javascript
js控制文本框只输入数字和小数点的方法
2015/03/10 Javascript
jquery制作属于自己的select自定义样式
2015/11/23 Javascript
理解javascript中的with关键字
2016/02/15 Javascript
Angularjs 滚动加载更多数据
2016/03/17 Javascript
使用Xcache缓存器加速PHP网站的配置方法
2017/04/22 Javascript
获取当前按钮或者html的ID名称实例(推荐)
2017/06/23 Javascript
jQuery实现二级导航菜单的示例
2020/09/30 jQuery
Javascript柯里化实现原理及作用解析
2020/10/22 Javascript
Vue SPA 首屏优化方案
2021/02/26 Vue.js
python 参数列表中的self 显式不等于冗余
2008/12/01 Python
Python提取网页中超链接的方法
2016/09/18 Python
Python脚本获取操作系统版本信息
2016/12/17 Python
Python 多进程和数据传递的理解
2017/10/09 Python
python如何重载模块实例解析
2018/01/25 Python
Pycharm导入Python包,模块的图文教程
2018/06/13 Python
使用pandas将numpy中的数组数据保存到csv文件的方法
2018/06/14 Python
python开启摄像头以及深度学习实现目标检测方法
2018/08/03 Python
pycharm 将python文件打包为exe格式的方法
2019/01/16 Python
Django学习笔记之为Model添加Action
2019/04/30 Python
使用python将微信image下.dat文件解密为.png的方法
2020/11/30 Python
全球摩托车装备领导者:RevZilla
2017/09/04 全球购物
英国当代时尚和街头服饰店:18montrose
2018/12/15 全球购物
mysql有关权限的表都有哪几个
2015/04/22 面试题
一套英文Java笔试题面试题
2016/04/21 面试题
医学检验专业大学生求职信
2013/11/18 职场文书
打架检讨书500字
2014/01/29 职场文书
个人党性剖析材料
2014/02/03 职场文书
幸福家庭标语
2014/06/27 职场文书