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与SQL注入攻击[一]
Apr 17 PHP
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
Apr 18 PHP
php笔记之:php函数range() round()和list()的使用说明
Apr 26 PHP
解析phpstorm + xdebug 远程断点调试
Jun 20 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
Jun 30 PHP
CodeIgniter安全相关设置汇总
Jul 03 PHP
php生成图片验证码
Jun 09 PHP
学习PHP session的传递方式
Jun 15 PHP
Thinkphp5.0自动生成模块及目录的方法详解
Apr 17 PHP
yii2 resetful 授权验证详解
May 18 PHP
Yii2设置默认控制器的两种方法
May 19 PHP
PDO::getAttribute讲解
Jan 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
linux下安装php的memcached客户端
2014/08/03 PHP
php简单创建zip压缩文件的方法
2016/04/30 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
如何实现浏览器上的右键菜单
2006/07/10 Javascript
用jQuery扩展自写的 UI导航
2010/01/13 Javascript
模拟select的代码
2011/10/19 Javascript
JavaScript 学习笔记之一jQuery写法图片等比缩放以及预加载
2012/06/28 Javascript
JS中window.open全屏命令解析及使用示例
2013/12/11 Javascript
jQuery简单实现QQ空间点赞已经取消点赞
2015/04/02 Javascript
jQuery简单实现两级下拉菜单效果代码
2015/09/15 Javascript
深入理解jQuery layui分页控件的使用
2016/08/17 Javascript
Javascript动画效果(4)
2016/10/11 Javascript
微信小程序之电影影评小程序制作代码
2017/08/03 Javascript
一个Js文件函数中调用另一个Js文件函数的方法演示
2017/08/14 Javascript
mac中利用NVM管理不同node版本的方法详解
2017/11/08 Javascript
vue给input file绑定函数获取当前上传的对象完美实现方法
2017/12/15 Javascript
jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法
2019/01/18 jQuery
详解element-ui动态限定的日期范围选择器代码片段
2020/07/03 Javascript
详解JavaScript中的数据类型,以及检测数据类型的方法
2020/09/17 Javascript
Python中让MySQL查询结果返回字典类型的方法
2014/08/22 Python
Python实现截屏的函数
2015/07/26 Python
利用Python脚本生成sitemap.xml的实现方法
2017/01/31 Python
基于Python实现定时自动给微信好友发送天气预报
2018/10/25 Python
详解Django+Uwsgi+Nginx 实现生产环境部署
2018/11/06 Python
利用pyecharts读取csv并进行数据统计可视化的实现
2020/04/17 Python
Python安装Bs4的多种方法
2020/11/28 Python
基于Django快速集成Echarts代码示例
2020/12/01 Python
名人珠宝设计师:Melinda Maria Jewelry
2019/03/06 全球购物
科颜氏法国官网:Kiehl’s法国
2019/08/20 全球购物
写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分隔
2015/07/30 面试题
财务会计实习报告体会
2013/12/20 职场文书
委托公证书范本
2014/04/03 职场文书
2014年合同管理工作总结
2014/12/02 职场文书
2015年植树节活动总结
2015/02/06 职场文书
教师信息技术学习心得体会
2016/01/21 职场文书
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
2021/06/11 Python