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中对数据库操作的封装
Oct 09 PHP
php radio 单选框获取与保持值的实现代码
May 15 PHP
PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
Nov 10 PHP
探讨PHP中this,self,parent的区别详解
Jun 08 PHP
php不写闭合标签的好处
Mar 04 PHP
PHP递归遍历指定目录的文件并统计文件数量的方法
Mar 24 PHP
PHP加密解密字符串汇总
Apr 26 PHP
浅谈php的优缺点
Jul 14 PHP
php简单防盗链实现方法
Jul 29 PHP
ubuntu下配置nginx+php+mysql详解
Sep 10 PHP
php利用header函数下载各种文件
Aug 24 PHP
PHPMailer发送邮件
Dec 28 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/10/28 PHP
php使用百度ping服务代码实例
2014/06/19 PHP
php防止伪造的数据从URL提交方法
2014/06/27 PHP
使用Thinkphp框架开发移动端接口
2015/08/05 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
jquery maxlength使用说明
2011/09/09 Javascript
超级好用的jQuery圆角插件 Corner速成
2014/08/31 Javascript
浅谈Javascript如何实现匀速运动
2014/12/19 Javascript
jQuery中:first选择器用法实例
2014/12/30 Javascript
JavaScript 学习笔记之操作符(续)
2015/01/14 Javascript
Jquery 分页插件之Jquery Pagination
2015/08/25 Javascript
JavaScript实现点击文本自动定位到下拉框选中操作
2016/06/15 Javascript
解决微信浏览器Javascript无法使用window.location.reload()刷新页面
2016/06/21 Javascript
JS产生随机数的几个用法详解
2016/06/22 Javascript
angular基于路由控制ui-router实现系统权限控制
2016/09/27 Javascript
javascript轮播图算法
2016/10/21 Javascript
实例解析angularjs的filter过滤器
2016/12/14 Javascript
详解vue.js的devtools安装
2017/05/26 Javascript
JS设计模式之惰性模式(二)
2017/09/29 Javascript
JavaScript中十种一步拷贝数组的方法实例详解
2019/04/22 Javascript
js this 绑定机制深入详解
2020/04/30 Javascript
如何编写一个 Webpack Loader的实现
2020/10/18 Javascript
[03:47]2015国际邀请赛第三日现场精彩回顾
2015/08/08 DOTA
Python base64编码解码实例
2015/06/21 Python
python3编写ThinkPHP命令执行Getshell的方法
2019/02/26 Python
Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】
2019/03/30 Python
Django urls.py重构及参数传递详解
2019/07/23 Python
python定时截屏实现
2020/11/02 Python
加拿大高尔夫超市:Golf Town
2018/01/12 全球购物
具有防紫外线功能的高性能钓鱼服装:Hook&Tackle
2018/08/16 全球购物
护理人员的自我评价分享
2014/03/15 职场文书
物理学专业求职信
2014/07/04 职场文书
Apache Calcite 实现方言转换的代码
2021/04/24 Servers
Python 实现定积分与二重定积分的操作
2021/05/26 Python
浅析CSS在DevTools 中架构演变
2021/10/05 HTML / CSS
python 判断字符串当中是否包含字符(str.contain)
2022/06/01 Python