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读取IMAP邮件
Oct 09 PHP
php学习笔记之 函数声明(二)
Jun 09 PHP
Session保存到数据库的php类分享
Oct 24 PHP
关于二级目录拖拽排序的实现(源码示例下载)
Apr 26 PHP
php二维数组排序与默认自然排序的方法介绍
Apr 27 PHP
table标签的结构与合并单元格的实现方法
Jul 24 PHP
php获取mysql字段名称和其它信息的例子
Apr 14 PHP
yii操作session实例简介
Jul 31 PHP
php将日期格式转换成xx天前的格式
Apr 16 PHP
php版微信公众账号第三方管理工具开发简明教程
Sep 23 PHP
PHP用正则匹配form表单中所有元素的类型和属性值实例代码
Feb 28 PHP
PHP isset empty函数相关面试题及解析
Dec 11 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+MYSQL会员系统的登陆即权限判断实现代码
2011/09/23 PHP
phpmyadmin中禁止外网使用的方法
2014/11/04 PHP
浅析php创建者模式
2014/11/25 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
javascript 清除输入框中的数据
2009/04/13 Javascript
jquery 表单进行客户端验证demo
2009/08/24 Javascript
jQuery帮助之CSS尺寸(五)outerHeight、outerWidth
2009/11/14 Javascript
JSON 教程 json入门学习笔记
2020/09/22 Javascript
javascript一些实用技巧小结
2011/03/18 Javascript
鼠标移入移出事件改变图片的分辨率的两种方法
2013/12/17 Javascript
node.js入门教程之querystring模块的使用方法
2017/02/27 Javascript
VueJs单页应用实现微信网页授权及微信分享功能示例
2017/07/26 Javascript
使用JS编写的随机抽取号码的小程序
2017/08/11 Javascript
vue一个页面实现音乐播放器的示例
2018/02/06 Javascript
解决vue-router中的query动态传参问题
2018/03/20 Javascript
一篇文章,教你学会Vue CLI 插件开发
2019/04/17 Javascript
vue-cli3使用mock数据的方法分析
2020/03/16 Javascript
jQuery-App输入框实现实时搜索
2020/11/19 jQuery
js实现随机点名功能
2020/12/23 Javascript
[26:52]LGD vs EG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
简单介绍使用Python解析并修改XML文档的方法
2015/10/15 Python
Win10下Python环境搭建与配置教程
2016/11/18 Python
Python探索之静态方法和类方法的区别详解
2017/10/27 Python
关于pycharm中pip版本10.0无法使用的解决办法
2019/10/10 Python
微软开源最强Python自动化神器Playwright(不用写一行代码)
2021/01/05 Python
CSS3 @media的基本用法总结
2019/09/10 HTML / CSS
localStorage、sessionStorage使用总结
2017/11/17 HTML / CSS
简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程
2012/04/17 面试题
介绍下java.util.Arrays类
2012/10/16 面试题
中国在我心中演讲稿
2014/09/13 职场文书
因工资原因离职的辞职信范文
2015/05/12 职场文书
走进科学观后感
2015/06/18 职场文书
七一表彰大会简报
2015/07/20 职场文书
周一问候语大全
2015/11/10 职场文书
你为什么是穷人?可能是这5个缺点造成
2019/07/11 职场文书
Python实战实现爬取天气数据并完成可视化分析详解
2022/06/16 Python