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语法(1)
Oct 09 PHP
php 中include()与require()的对比
Oct 09 PHP
PHP操作数组的一些函数整理介绍
Jul 17 PHP
防止本地用户用fsockopen DDOS攻击对策
Nov 02 PHP
yii框架通过控制台命令创建定时任务示例
Apr 30 PHP
Smarty局部缓存的几种方法简介
Jun 17 PHP
两千行代码的PHP学习笔记汇总
Oct 05 PHP
php支付宝接口用法分析
Jan 04 PHP
求帮忙修改个php curl模拟post请求内容后并下载文件的解决思路
Sep 20 PHP
PHP实现的方程求解示例分析
Nov 11 PHP
PHP多进程编程之僵尸进程问题的理解
Oct 15 PHP
PHP实现二维数组(或多维数组)转换成一维数组的常见方法总结
Dec 04 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
PHP4实际应用经验篇(7)
2006/10/09 PHP
php中session_unset与session_destroy的区别分析
2011/06/16 PHP
php过滤html标记属性类用法实例
2014/09/23 PHP
php实现简单文件下载的方法
2015/01/30 PHP
使用Git实现Laravel项目的自动化部署
2019/11/24 PHP
phpstudy后门rce批量利用脚本的实现
2019/12/12 PHP
IE6,IE7下js动态加载图片不显示错误
2010/07/17 Javascript
使用forever管理nodejs应用教程
2014/06/03 NodeJs
JavaScript支持的最大递归调用次数分析
2014/06/24 Javascript
JavaScript中定义函数的三种方法
2015/03/12 Javascript
快速解决Canvas.toDataURL 图片跨域的问题
2016/05/10 Javascript
利用python分析access日志的方法
2016/10/26 Javascript
js实现3D图片展示效果
2017/03/09 Javascript
在bootstrap中实现轮播图实例代码
2017/06/11 Javascript
es6系列教程_ Map详解以及常用api介绍
2017/09/25 Javascript
详解vue 数据传递的方法
2018/04/19 Javascript
详解vue 图片上传功能
2019/04/30 Javascript
node.js事件轮询机制原理知识点
2019/12/22 Javascript
通过angular CDK实现页面元素拖放的步骤详解
2020/07/01 Javascript
浏览器JavaScript调试功能无法使用解决方案
2020/09/18 Javascript
javascript实现随机抽奖功能
2020/12/30 Javascript
python调用xlsxwriter创建xlsx的方法
2018/05/03 Python
python Django里CSRF 对应策略详解
2019/08/05 Python
Python控制台输出时刷新当前行内容而不是输出新行的实现
2020/02/21 Python
详解基于Scrapy的IP代理池搭建
2020/09/29 Python
HTML5 canvas基本绘图之填充样式实现
2016/06/27 HTML / CSS
AmazeUI 折叠面板的实现代码
2020/08/17 HTML / CSS
澳大利亚Mocha官方网站:包、钱包、珠宝和配饰
2019/07/18 全球购物
日本最大化妆品和美容产品的综合口碑网站:cosme shopping
2019/08/28 全球购物
金智子午JAVA面试题
2015/09/04 面试题
法学研究生自我鉴定范文
2013/12/04 职场文书
接受捐赠答谢词
2014/01/27 职场文书
市场营销工作计划书
2014/09/15 职场文书
2014幼儿园教育教学工作总结
2014/12/17 职场文书
仓库保管员岗位职责
2015/02/09 职场文书
2015年度学校卫生工作总结
2015/05/12 职场文书