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 相关文章推荐
关于BIG5-HKSCS的解决方法
Mar 20 PHP
Bo-Blog专用的给Windows服务器的IIS Rewrite程序
Aug 26 PHP
linux系统下php安装mbstring扩展的二种方法
Jan 20 PHP
PHP中让curl支持sock5的代码实例
Jan 21 PHP
php实现的mongodb操作类
May 28 PHP
PHP+MySQL之Insert Into数据插入用法分析
Sep 27 PHP
PHP递归遍历指定文件夹内的文件实现方法
Nov 15 PHP
PHP基于socket实现的简单客户端和服务端通讯功能示例
Jul 10 PHP
php数据序列化测试实例详解
Aug 12 PHP
PHP实现的最大正向匹配算法示例
Dec 19 PHP
PHP等比例压缩图片的实例代码
Jul 26 PHP
总结PHP中初始化空数组的最佳方法
Feb 13 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
分享8个最佳的代码片段在线测试网站
2013/06/29 PHP
PHP加Nginx实现动态裁剪图片方案
2014/03/10 PHP
php+ajax实现的点击浏览量加1
2015/04/16 PHP
php实现window平台的checkdnsrr函数
2015/05/27 PHP
weiphp微信公众平台授权设置
2016/01/04 PHP
php实现的简单中文验证码功能示例
2017/01/03 PHP
php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程
2020/08/17 PHP
js简单实现交换Li的值
2014/05/22 Javascript
JS运动框架之分享侧边栏动画实例
2015/03/03 Javascript
jquery实现的省市区三级联动
2015/04/02 Javascript
jQuery实现鼠标经过提示信息的地图热点效果
2015/04/26 Javascript
javascript实现Table排序的方法
2015/05/15 Javascript
在JavaScript中操作时间之getYear()方法的使用教程
2015/06/11 Javascript
jquery控制页面部分刷新的方法
2015/06/24 Javascript
Javascript实现快速排序(Quicksort)的算法详解
2015/09/06 Javascript
浅谈js获取ModelAndView值的问题
2018/03/28 Javascript
解决Vue开发中对话框被遮罩层挡住的问题
2018/11/26 Javascript
微信小程序上传多图到服务器并获取返回的路径
2019/05/05 Javascript
vue中 v-for循环的用法详解
2020/02/19 Javascript
JavaScript观察者模式原理与用法实例详解
2020/03/10 Javascript
nodejs+koa2 实现模仿springMVC框架
2020/10/21 NodeJs
[07:38]2014DOTA2国际邀请赛 Newbee顺利挺进胜者组赛后专访
2014/07/15 DOTA
[01:07]2015国际邀请赛 中国区预选赛精彩回顾
2015/06/15 DOTA
python解析文件示例
2014/01/23 Python
在Apache服务器上同时运行多个Django程序的方法
2015/07/22 Python
Python学习_几种存取xls/xlsx文件的方法总结
2018/05/03 Python
Python 爬取携程所有机票的实例代码
2018/06/11 Python
python pygame模块编写飞机大战
2018/11/20 Python
python将txt文档每行内容循环插入数据库的方法
2018/12/28 Python
Python yield生成器和return对比代码实例
2020/04/20 Python
美国顶级防滑鞋:Shoes For Crews
2017/03/27 全球购物
南非最大的在线时尚商店:Zando
2019/07/21 全球购物
大学生社会实践自我鉴定
2014/03/24 职场文书
会计试用期自我评价怎么写
2014/09/18 职场文书
社区党建工作汇报材料
2014/10/27 职场文书
python入门学习关于for else的特殊特性讲解
2021/11/20 Python