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 相关文章推荐
不用数据库的多用户文件自由上传投票系统(1)
Oct 09 PHP
创建数据库php代码 用PHP写出自己的BLOG系统
Apr 12 PHP
PHP 第二节 数据类型之字符串类型
Apr 28 PHP
处理单名多值表单的详解
Jun 08 PHP
codeigniter数据库操作函数汇总
Jun 12 PHP
php制作动态随机验证码
Feb 12 PHP
php检索或者复制远程文件的方法
Mar 13 PHP
两种php给图片加水印的实现代码
Apr 18 PHP
php+ajax制作无刷新留言板
Oct 27 PHP
PHP面向对象编程之深入理解方法重载与方法覆盖(多态)
Dec 24 PHP
Zend Framework生成验证码并实现验证码验证功能(附demo源码下载)
Mar 22 PHP
PHP编程实现微信企业向用户付款的方法示例
Jul 26 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字符串函数学习之strstr()
2015/03/27 PHP
PHP的Yii框架中Model模型的学习教程
2016/03/29 PHP
PHP中Socket连接及读写数据超时问题分析
2016/07/19 PHP
Yii框架数据模型的验证规则rules()被执行的方法
2016/12/02 PHP
微信公众平台开发教程①获取用户Openid及个人信息图文详解
2019/04/10 PHP
探索Emberjs制作一个简单的Todo应用
2012/11/07 Javascript
js原型继承的两种方法对比介绍
2014/03/30 Javascript
jquery 插件实现瀑布流图片展示实例
2015/04/03 Javascript
jquery读写cookie操作实例分析
2015/12/24 Javascript
Javascript中作用域的详细介绍
2016/10/06 Javascript
js 转json格式的字符串为对象或数组(前后台)的方法
2016/11/02 Javascript
详解vue.js组件化开发实践
2016/12/14 Javascript
jQuery异步提交表单实例
2017/05/30 jQuery
浅谈关于axios和session的一些事
2017/07/13 Javascript
如何更好的编写js async函数
2018/05/13 Javascript
angular 服务随记小结
2019/05/06 Javascript
谈谈python中GUI的选择
2018/03/01 Python
Python爬虫实战:分析《战狼2》豆瓣影评
2018/03/26 Python
和孩子一起学习python之变量命名规则
2018/05/27 Python
python绘制已知点的坐标的直线实例
2019/07/04 Python
python使用paramiko实现ssh的功能详解
2020/03/06 Python
python用opencv完成图像分割并进行目标物的提取
2020/05/25 Python
详解python中的三种命令行模块(sys.argv,argparse,click)
2020/12/15 Python
python 实现有道翻译功能
2021/02/26 Python
利用CSS3实现文本框的清除按钮相关的一些效果
2015/06/23 HTML / CSS
HTML5 Notification(桌面提醒)功能使用实例
2014/03/17 HTML / CSS
德国领先的大尺码和超大尺码男装在线零售商:Bigtex
2019/06/22 全球购物
怎样创建、运行java程序
2014/08/01 面试题
Java里面Pass by value和Pass by Reference是什么意思
2016/05/02 面试题
护理专业毕业生自我鉴定
2013/10/08 职场文书
大学毕业生自荐书怎么写?
2014/01/06 职场文书
汉语专业毕业生自荐信
2014/07/06 职场文书
民主生活会对照检查材料思想汇报
2014/09/27 职场文书
销售会议开幕词
2015/01/28 职场文书
python如何获取网络数据
2021/04/11 Python
golang用type-switch判断interface的实际存储类型
2022/04/14 Golang