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 at(@)符号的用法简介
Jul 11 PHP
在字符串指定位置插入一段字符串的php代码
Feb 16 PHP
php替换超长文本中的特殊字符的函数代码
May 22 PHP
php判断上传的Excel文件中是否有图片及PHPExcel库认识
Jan 11 PHP
PHP操作MongoDB GridFS 存储文件的详解
Jun 20 PHP
PHP扩展开发教程(总结)
Nov 04 PHP
PHP时间类完整实例(非常实用)
Dec 25 PHP
PHP验证码生成原理和实现
Jan 24 PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
Apr 21 PHP
PHP实现的最大正向匹配算法示例
Dec 19 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
Feb 08 PHP
PHP实现读取文件夹及批量重命名文件操作示例
Apr 15 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
欧美媒体选出10年前最流行的17部动画
2017/01/18 日漫
php连接mysql数据库最简单的实现方法
2019/09/24 PHP
tagName的使用,留一笔
2006/06/26 Javascript
dwr spring的集成实现代码
2009/03/22 Javascript
js内置对象 学习笔记
2011/08/01 Javascript
JS时间选择器 兼容IE6,7,8,9
2012/06/26 Javascript
使用jQuery.wechat构建微信WEB应用
2014/10/09 Javascript
详谈JavaScript内存泄漏
2014/11/14 Javascript
js实现仿百度瀑布流的方法
2015/02/05 Javascript
JavaScript创建一个object对象并操作对象属性的用法
2015/03/23 Javascript
Jquery实现$.fn.extend和$.extend函数
2016/04/14 Javascript
配置nodejs环境的方法
2017/05/13 NodeJs
基于zepto.js实现手机相册功能
2017/07/11 Javascript
js学习心得_一个简单的动画库封装tween.js
2017/07/14 Javascript
react+redux的升级版todoList的实现
2017/12/18 Javascript
jQuery插件Validation表单验证详解
2018/05/26 jQuery
vue中使用sessionStorage记住密码功能
2018/07/24 Javascript
Vue-component全局注册实例
2018/09/06 Javascript
解决 viewer.js 动态更新图片导致无法预览的问题
2019/05/14 Javascript
Vue proxyTable配置多个接口地址,解决跨域的问题
2020/09/11 Javascript
Python深入学习之内存管理
2014/08/31 Python
Python实现的IP端口扫描工具类示例
2019/02/15 Python
django有外键关系的两张表如何相互查找
2020/02/10 Python
Window版下在Jupyter中编写TensorFlow的环境搭建
2020/04/10 Python
css3实现一个div设置多张背景图片及background-image属性实例演示
2017/08/10 HTML / CSS
H5页面适配iPhoneX(就是那么简单)
2019/12/02 HTML / CSS
中国最大隐形眼镜网上商城:视客眼镜网
2016/10/30 全球购物
Three Graces London官网:英国奢侈品牌
2021/03/18 全球购物
更夫岗位责任制
2014/02/11 职场文书
《蜗牛的奖杯》教后反思
2014/04/24 职场文书
银行柜员求职自荐书
2014/06/18 职场文书
党员教师自我剖析材料
2014/09/29 职场文书
党的群众路线调研报告
2014/11/03 职场文书
2014个人年度工作总结
2014/12/15 职场文书
学前班教学反思
2016/02/24 职场文书
导游词之泉州崇武古城
2019/12/20 职场文书