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 相关文章推荐
综合图片计数器
Oct 09 PHP
WML,Apache,和 PHP 的介绍
Oct 09 PHP
php采集速度探究总结(原创)
Apr 18 PHP
php中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)
Dec 19 PHP
浅谈apache和nginx的rewrite的区别
Feb 22 PHP
php使用GD库创建图片缩略图的方法
Jun 10 PHP
WordPress导航菜单的滚动和淡入淡出效果的实现要点
Dec 14 PHP
php连接oracle数据库的方法(测试成功)
May 26 PHP
简单的pgsql pdo php操作类实现代码
Aug 25 PHP
laravel5使用freetds连接sql server的方法
Dec 07 PHP
CI框架实现创建自定义类库的方法
Dec 25 PHP
laravel在中间件内生成参数并且传递到控制器中的2种姿势
Oct 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
vBulletin Forum 2.3.xx SQL Injection
2006/10/09 PHP
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同之处小结
2012/03/07 PHP
javascript 支持链式调用的异步调用框架Async.Operation
2009/08/04 Javascript
Jquery cookie操作代码
2010/03/14 Javascript
扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
2013/05/17 Javascript
javascript+html5实现绘制圆环的方法
2015/07/28 Javascript
asp.net+jquery.form实现图片异步上传的方法(附jquery.form.js下载)
2016/05/05 Javascript
全面解析jQuery $(document).ready()和JavaScript onload事件
2016/06/08 Javascript
浅谈EasyUI常用控件的禁用方法
2016/11/09 Javascript
jQuery实现模拟flash头像裁切上传功能示例
2016/12/11 Javascript
jquery滚动条插件(可以自定义)
2016/12/11 Javascript
使用JavaScript根据图片获取条形码的方法
2017/07/04 Javascript
Vue.js结合Ueditor富文本编辑器的实例代码
2017/07/11 Javascript
微信小程序实现滚动消息通知
2018/02/02 Javascript
vue-cli创建的项目,配置多页面的实现方法
2018/03/15 Javascript
微信小程序实现登录遮罩效果
2018/11/01 Javascript
Next.js项目实战踩坑指南(笔记)
2018/11/29 Javascript
微信小程序的授权实现过程解析
2019/08/02 Javascript
基于js实现抽红包并分配代码实例
2019/09/19 Javascript
有关vue 开发钉钉 H5 微应用 dd.ready() 不执行问题及快速解决方案
2020/05/09 Javascript
JQuery+drag.js上传图片并且实现图片拖曳
2020/11/18 jQuery
JavaScript实现点击图片换背景
2020/11/20 Javascript
基于ajax实现上传图片代码示例解析
2020/12/03 Javascript
[00:35]TI7不朽珍藏III——寒冰飞龙不朽展示
2017/07/15 DOTA
使用Python操作MySQL的一些基本方法
2015/08/16 Python
用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动
2015/11/05 Python
深入剖析Python的爬虫框架Scrapy的结构与运作流程
2016/01/20 Python
dpn网络的pytorch实现方式
2020/01/14 Python
Python逐行读取文件内容的方法总结
2020/02/14 Python
Python关于反射的实例代码分享
2020/02/20 Python
PyQt5+python3+pycharm开发环境配置教程
2020/03/24 Python
Python获取浏览器窗口句柄过程解析
2020/07/25 Python
医大实习自我鉴定
2013/12/07 职场文书
责任书格式范文
2014/07/28 职场文书
授权收款委托书
2014/09/23 职场文书
2015年信息中心工作总结
2015/05/25 职场文书