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
字母顺序颠倒而单词顺序不变的php代码
Aug 08 PHP
PHP中is_file不能替代file_exists的理由
Mar 04 PHP
教你php如何实现验证码
Jan 20 PHP
php使用strip_tags()去除html标签仍有空白的解决方法
Jul 28 PHP
php解析base64数据生成图片的方法
Dec 06 PHP
PHP实现的二分查找算法实例分析
Dec 19 PHP
PHP中使用CURL发送get/post请求上传图片批处理功能
Oct 15 PHP
PHP应用跨时区功能的实现方法
Mar 21 PHP
Yii Framework框架使用PHPExcel组件的方法示例
Jul 24 PHP
ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例
Aug 05 PHP
解决laravel 出现ajax请求419(unknown status)的问题
Sep 03 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+MySql编写聊天室
2006/10/09 PHP
PHPMailer使用教程(PHPMailer发送邮件实例分析)
2012/12/06 PHP
PHP应用JSON技巧讲解
2013/02/03 PHP
Ubuntu 16.04下安装PHP 7过程详解
2017/03/28 PHP
关于textarea提交的内容无法换行的解决办法
2013/04/09 Javascript
javascript处理表单示例(javascript提交表单)
2014/04/28 Javascript
jQuery使用toggleClass方法动态添加删除Class样式的方法
2015/03/26 Javascript
jquery预加载图片的方法
2015/05/27 Javascript
JS实现适合于后台使用的动画折叠菜单效果
2015/09/21 Javascript
jQuery实现控制文字内容溢出用省略号(…)表示的方法
2016/02/26 Javascript
微信小程序中使用javascript 回调函数
2017/05/11 Javascript
Vue.js框架路由使用方法实例详解
2017/08/25 Javascript
关于angularJs清除浏览器缓存的方法
2017/11/28 Javascript
vue实现选项卡及选项卡切换效果
2018/04/24 Javascript
DatePickerDialog 自定义样式及使用全解
2019/07/09 Javascript
Openlayers实现地图全屏显示
2020/09/28 Javascript
如何使用 JavaScript 操作浏览器历史记录 API
2020/11/24 Javascript
Python检查和同步本地时间(北京时间)的实现方法
2018/12/03 Python
python使用matplotlib画柱状图、散点图
2019/03/18 Python
Python爬虫实现爬取百度百科词条功能实例
2019/04/05 Python
对python中url参数编码与解码的实例详解
2019/07/25 Python
pytorch nn.Conv2d()中的padding以及输出大小方式
2020/01/10 Python
CSS3 linear-gradient线性渐变生成加号和减号的方法
2017/11/21 HTML / CSS
以设计师精品品质提供快速时尚:PopJulia
2018/01/09 全球购物
Vuori官网:运动服装的终级表现
2021/01/27 全球购物
医院护士专业个人的求职信
2013/12/09 职场文书
房地产融资计划书
2014/01/10 职场文书
《愚公移山》教学反思
2014/02/20 职场文书
业务部门经理岗位职责
2014/02/23 职场文书
社区工作者个人总结
2015/02/28 职场文书
工作态度检讨书范文
2015/05/06 职场文书
乡镇司法所2015年度工作总结
2015/10/14 职场文书
初中数学课堂教学反思
2016/02/17 职场文书
小学生优秀作文范文(六篇)
2019/07/10 职场文书
写作技巧:如何撰写一份优秀的营销策划书
2019/08/13 职场文书
2019年图书室自查报告范本
2019/10/12 职场文书