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+MySQL 制作简单的留言本
Nov 02 PHP
PHP在字符断点处截断文字的实现代码
Apr 21 PHP
php加密解密实用类分享
Jan 07 PHP
php使用百度ping服务代码实例
Jun 19 PHP
ThinkPHP分组下自定义标签库实例
Nov 01 PHP
PHP批量查询WordPress留言者E-mail地址实现方法
Feb 15 PHP
PHP+Ajax实时自动检测是否联网的方法
Jul 01 PHP
php实现微信发红包
Dec 05 PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
Jan 16 PHP
Yii2 中实现单点登录的方法
Mar 09 PHP
Laravel 连接(Join)示例
Oct 16 PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
May 02 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之curl实现http与https请求的方法
2014/10/21 PHP
PHP判断JSON对象是否存在的方法(推荐)
2016/07/06 PHP
php递归函数怎么用才有效
2018/02/24 PHP
tp5 实现列表数据根据状态排序
2019/10/18 PHP
php并发加锁问题分析与设计代码实例讲解
2021/02/26 PHP
jQuery弹性滑动导航菜单实现思路及代码
2013/05/02 Javascript
jquery放大镜效果超漂亮噢
2013/11/15 Javascript
jquery通过a标签删除table中的一行的代码
2013/12/02 Javascript
js网页滚动条滚动事件实例分析
2015/05/05 Javascript
基于JS2Image实现圣诞树代码
2015/12/24 Javascript
AngularJS bootstrap启动详解及实例代码
2016/09/14 Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
2017/02/17 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
2017/02/28 Javascript
vue 组件 全局注册和局部注册的实现
2018/02/28 Javascript
js 下拉菜单点击旁边收起实现(踩坑记)
2019/09/29 Javascript
vue分页插件的使用方法
2019/12/25 Javascript
Python中处理字符串的相关的len()方法的使用简介
2015/05/19 Python
Python去除、替换字符串空格的处理方法
2018/04/01 Python
python删除不需要的python文件方法
2018/04/24 Python
Windows系统下PhantomJS的安装和基本用法
2018/10/21 Python
djano一对一、多对多、分页实例代码
2019/08/16 Python
从pandas一个单元格的字符串中提取字符串方式
2019/12/17 Python
在python shell中运行python文件的实现
2019/12/21 Python
Python RabbitMQ实现简单的进程间通信示例
2020/07/02 Python
python--shutil移动文件到另一个路径的操作
2020/07/13 Python
HTML5通过navigator.mediaDevices.getUserMedia调用手机摄像头问题
2020/04/27 HTML / CSS
国际奢侈品品牌童装购物网站:Designer Childrenswear
2019/05/08 全球购物
C语言笔试题回忆
2015/04/02 面试题
数据库方面面试题
2012/04/22 面试题
八项规定对照检查材料
2014/08/31 职场文书
师德师风自查材料
2014/10/14 职场文书
受资助学生感谢信
2015/01/21 职场文书
2016年党校科级干部培训班学习心得体会
2016/01/06 职场文书
2016年小学“感恩教师”主题队日活动总结
2016/04/01 职场文书
实习报告怎么写
2019/06/20 职场文书
《金肉人》米特&《航海王》阿鹤声优松岛实因胰脏癌去世 享寿81岁
2022/04/13 日漫