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 相关文章推荐
Win9x/ME下Apache+PHP安装配置
Oct 09 PHP
初探PHP5
Oct 09 PHP
浅谈PHP语法(1)
Oct 09 PHP
PHP 批量删除 sql语句
Jun 05 PHP
理解php原理的opcodes(操作码)
Oct 26 PHP
深入解析PHP垃圾回收机制对内存泄露的处理
Jun 14 PHP
PHP cdata 处理(详细介绍)
Jul 05 PHP
微信公众平台接口开发入门示例
Dec 24 PHP
Yii2数据库操作常用方法小结
May 04 PHP
浅谈thinkphp5 instance 的简单实现
Jul 30 PHP
PHP 构造函数和析构函数原理与用法分析
Apr 21 PHP
PHP读取文件或采集时解决中文乱码
Mar 09 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
用户的详细注册和判断
2006/10/09 PHP
php向js函数传参的几种方法
2014/08/10 PHP
thinkPHP+PHPExcel实现读取文件日期的方法(含时分秒)
2016/07/07 PHP
jquery不支持toggle()高(新)版本的问题解决
2016/09/24 PHP
jquery实现更改表格行顺序示例
2014/04/30 Javascript
jQuery实现数字加减效果汇总
2014/12/16 Javascript
JavaScript中window.showModalDialog()用法详解
2014/12/18 Javascript
整理AngularJS中的一些常用指令
2015/06/16 Javascript
AngularJS基础 ng-class-odd 指令示例
2016/08/01 Javascript
JS 实现Base64编码与解码实例详解
2016/11/07 Javascript
基于vue-cli配置lib-flexible + rem实现移动端自适应
2017/12/26 Javascript
浅谈webpack对样式的处理
2018/01/05 Javascript
angularJs 表格添加删除修改查询方法
2018/02/27 Javascript
编写React组件项目实践分析
2018/03/04 Javascript
详解easyui基于 layui.laydate日期扩展组件
2018/07/18 Javascript
angularjs1.5 组件内用函数向外传值的实例
2018/09/30 Javascript
基于JavaScript 实现拖放功能
2019/09/12 Javascript
javascript前端和后台进行数据交互方法示例
2020/08/07 Javascript
Vue页面跳转传递参数及接收方式
2020/09/09 Javascript
js实现随机点名
2021/01/19 Javascript
用python代码做configure文件
2014/07/20 Python
python提取字典key列表的方法
2015/07/11 Python
django解决跨域请求的问题
2018/11/11 Python
python变量的存储原理详解
2019/07/10 Python
Python实现线性判别分析(LDA)的MATLAB方式
2019/12/09 Python
Python socket服务常用操作代码实例
2020/06/22 Python
Lululemon英国官网:加拿大瑜伽服装品牌
2019/01/14 全球购物
日本最大的购物网站:日本乐天市场(Rakuten Ichiba)
2020/11/04 全球购物
2014中学教师节广播稿
2014/09/10 职场文书
2014年幼儿园教学工作总结
2014/12/04 职场文书
结婚保证书(卖身契)
2015/02/26 职场文书
2015年党员发展工作总结
2015/05/13 职场文书
无房证明样本
2015/06/17 职场文书
工商行政处罚决定书
2015/06/24 职场文书
网络研修随笔感言
2015/11/18 职场文书
如何才能写好调研报告?
2019/07/03 职场文书