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 的几个配置文件函数
Dec 21 PHP
PHP define函数的使用说明
Aug 27 PHP
php数组函数序列之rsort() - 对数组的元素值进行降序排序
Nov 02 PHP
PHP 多维数组的排序问题 根据二维数组中某个项排序
Nov 09 PHP
php实现快速排序法函数代码
Aug 27 PHP
解析php安全性问题中的:Null 字符问题
Jun 21 PHP
php使用文本统计访问量的方法
May 12 PHP
thinkphp分页实现效果
Oct 13 PHP
Yii2中多表关联查询hasOne hasMany的方法
Feb 15 PHP
PHP编程实现csv文件导入mysql数据库的方法
Apr 29 PHP
thinkphp5 加载静态资源路径与常量的方法
Dec 24 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
Feb 07 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页面防重复提交方法总结
2013/11/25 PHP
使用正则去除php代码中的注释方法
2016/11/03 PHP
php中this关键字用法分析
2016/12/07 PHP
PHP实现基于状态的责任链审批模式详解
2019/05/31 PHP
javascript+mapbar实现地图定位
2010/04/09 Javascript
jquery中eq和get的区别与使用方法
2011/04/14 Javascript
jquery里的正则表达式说明
2011/08/03 Javascript
Javascript的时间戳和php的时间戳转换注意事项
2013/04/12 Javascript
js Array对象的扩展函数代码
2013/04/24 Javascript
js如何取消事件冒泡
2013/09/23 Javascript
jQuery中nextAll()方法用法实例
2015/01/07 Javascript
JavaScript实现下拉菜单的显示和隐藏
2016/01/05 Javascript
jQuery计算文本框字数及限制文本框字数的方法
2016/03/01 Javascript
AngularJS入门教程之MVC架构实例分析
2016/11/01 Javascript
jQuery实现二维码扫描功能
2017/01/09 Javascript
Angular.js ng-file-upload结合springMVC的使用教程
2017/07/10 Javascript
JavaScript引用类型Function实例详解
2018/08/09 Javascript
vue-video-player 通过自定义按钮组件实现全屏切换效果【推荐】
2018/08/29 Javascript
vue的for循环使用方法
2019/02/12 Javascript
通过实例浅析Python对比C语言的编程思想差异
2015/08/30 Python
一篇文章入门Python生态系统(Python新手入门指导)
2015/12/11 Python
Python基础之getpass模块详细介绍
2017/08/10 Python
python将pandas datarame保存为txt文件的实例
2019/02/12 Python
python如何获得list或numpy数组中最大元素对应的索引
2020/11/16 Python
蔻驰西班牙官网:COACH西班牙
2019/01/16 全球购物
Camper鞋西班牙官方网上商店:西班牙马略卡岛的鞋类品牌
2019/03/14 全球购物
杭州龙健科技笔试题.net部分笔试题
2016/01/24 面试题
应聘医药代表职位求职信
2013/10/21 职场文书
函授大专自我鉴定
2013/11/01 职场文书
个人实习生的自我评价
2014/02/16 职场文书
自我推荐信格式模板
2015/03/24 职场文书
2015年前台文员工作总结
2015/05/18 职场文书
运动会开幕式致辞
2015/07/29 职场文书
2016新年感言
2015/08/03 职场文书
2019客服个人年终工作总结范文
2019/07/08 职场文书
openstack云计算keystone组件工作介绍
2022/04/20 Servers