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 相关文章推荐
无限级别菜单的实现
Oct 09 PHP
php 方便水印和缩略图的图形类
May 21 PHP
PHP读取txt文件的内容并赋值给数组的代码
Nov 03 PHP
PHP序列号生成函数和字符串替换函数代码
Jun 07 PHP
探讨如何在php168_cms中提取验证码
Jun 08 PHP
php使用curl访问https示例分享
Jan 17 PHP
php截取字符串函数分享
Feb 02 PHP
thinkphp实现163、QQ邮箱收发邮件的方法
Dec 18 PHP
详解PHP执行定时任务的实现思路
Dec 21 PHP
Zend Framework教程之配置文件application.ini解析
Mar 10 PHP
PHP按一定比例压缩图片的方法
Oct 12 PHP
PHP将整数数字转换为罗马数字实例分享
Mar 17 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获取json数据所有的节点路径
2015/05/17 PHP
优化WordPress中文章与评论的时间显示
2016/01/12 PHP
浅析php静态方法与非静态方法的用法区别
2016/05/17 PHP
windows下的WAMP环境搭建图文教程(推荐)
2017/07/27 PHP
LazyLoad 延迟加载(按需加载)
2010/05/31 Javascript
一个简单的JavaScript数据缓存系统实现代码
2010/10/24 Javascript
HTML,CSS,JavaScript速查表推荐
2014/12/02 Javascript
jQuery制作简单柱状图实例
2015/01/28 Javascript
js实现单击图片放大图片的方法
2015/02/17 Javascript
使用iojs的jsdom库实现同步系统时间
2015/04/20 Javascript
JS模式之简单的订阅者和发布者模式完整实例
2015/06/30 Javascript
jquery+Jscex打造游戏力度条
2020/09/12 Javascript
javascript简单写的判断电话号码实例
2017/05/24 Javascript
three.js 入门案例详解
2018/01/23 Javascript
Javascript实现时间倒计时功能
2018/11/17 Javascript
node事件循环和process模块实例分析
2020/02/14 Javascript
js实现小时钟效果
2020/03/25 Javascript
[04:11]DOTA2上海特级锦标赛主赛事首日TOP10
2016/03/03 DOTA
[02:03]风行者至宝清风环佩外观展示
2020/09/05 DOTA
Python异常对代码运行性能的影响实例解析
2018/02/08 Python
python广度优先搜索得到两点间最短路径
2019/01/17 Python
Python二进制文件读取并转换为浮点数详解
2019/06/25 Python
TensorFlow车牌识别完整版代码(含车牌数据集)
2019/08/05 Python
python 动态迁移solr数据过程解析
2019/09/04 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
2019/11/29 Python
pyftplib中文乱码问题解决方案
2020/01/11 Python
Python实现一个简单的毕业生信息管理系统的示例代码
2020/06/08 Python
海外淘书首选:AbeBooks
2017/07/31 全球购物
OPPO手机官方商城:中国手机市场出货量第一品牌
2017/10/18 全球购物
会计专业个人求职信范文
2014/01/08 职场文书
团日活动总结范文
2014/04/25 职场文书
城管执法人员纪律作风整顿思想汇报
2014/09/13 职场文书
党员四风问题对照检查材料思想汇报
2014/09/16 职场文书
2015年党员干部承诺书
2015/01/21 职场文书
政审证明材料
2015/06/19 职场文书
网吧员工管理制度
2015/08/05 职场文书