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项目的方法
Oct 09 PHP
用PHP的ob_start() 控制您的浏览器cache
Aug 03 PHP
php下图片文字混合水印与缩略图实现代码
Dec 11 PHP
PHP 开发环境配置(Zend Server安装)
Apr 28 PHP
PHP5.4中json_encode中文转码的变化小结
Jan 30 PHP
解决FastCGI 进程超过了配置的活动超时时限的问题
Jul 03 PHP
php过滤XSS攻击的函数
Nov 12 PHP
php使用百度天气接口示例
Apr 22 PHP
PHP使用CURL实现对带有验证码的网站进行模拟登录的方法
Jul 23 PHP
教你在PHPStorm中配置Xdebug
Jul 27 PHP
在laravel中使用Symfony的Crawler组件分析HTML
Jun 19 PHP
Yii使用DbTarget实现日志功能的示例代码
Jul 21 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中集成PayPal标准支付的实现方法分享
2012/02/06 PHP
PHP小技巧之JS和CSS优化工具Minify的使用方法
2014/05/19 PHP
php商品对比功能代码分享
2015/09/24 PHP
WordPress中用于获取及自定义头像图片的PHP脚本详解
2015/12/17 PHP
编写PHP程序检查字符串中的中文字符个数的实例分享
2016/03/17 PHP
PHP操作mysql数据库分表的方法
2016/06/09 PHP
php获取远程图片并下载保存到本地的方法分析
2016/10/08 PHP
基于prototype的validation.js发布2.3.4新版本,让你彻底脱离表单验证的烦恼
2006/12/06 Javascript
html读出文本文件内容
2007/01/22 Javascript
对YUI扩展的Gird组件 Part-1
2007/03/10 Javascript
兼容所有浏览器的js复制插件Zero使用介绍
2014/03/19 Javascript
JavaScript插件化开发教程 (一)
2015/01/27 Javascript
vue-router单页面路由
2017/06/17 Javascript
JS实现在文本指定位置插入内容的简单示例
2017/12/22 Javascript
Vue实现动态添加或者删除对象和对象数组的操作方法
2018/09/21 Javascript
vue+mock.js实现前后端分离
2019/07/24 Javascript
微信小程序 flexbox layout快速实现基本布局的解决方案
2020/03/24 Javascript
解决vuecli3中img src 的引入问题
2020/08/04 Javascript
深入浅出学习python装饰器
2017/09/29 Python
Python实现读取txt文件并转换为excel的方法示例
2018/05/17 Python
解决Python安装后pip不能用的问题
2018/06/12 Python
numpy返回array中元素的index方法
2018/06/27 Python
tensorflow 获取所有variable或tensor的name示例
2020/01/04 Python
python实现音乐播放和下载小程序功能
2020/04/26 Python
python中Pexpect的工作流程实例讲解
2021/03/02 Python
CSS书写规范、顺序和命名规则
2014/03/06 HTML / CSS
HTML5 placeholder(空白提示)属性介绍
2013/08/07 HTML / CSS
C语言面试题
2015/10/30 面试题
二年级语文教学反思
2014/02/02 职场文书
计算机应届毕业生自荐信范文
2014/02/23 职场文书
工程力学专业自荐信范文
2014/03/17 职场文书
北京奥运会主题口号
2014/06/13 职场文书
工程竣工验收申请报告
2015/05/15 职场文书
经典哲理警句:志不真则心不热,心不热则功不贤
2019/11/14 职场文书
MySQL 表空间碎片的概念及相关问题解决
2021/05/07 MySQL
pytorch--之halfTensor的使用详解
2021/05/24 Python