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 相关文章推荐
让你同时上传 1000 个文件 (二)
Oct 09 PHP
PHP一些有意思的小区别
Dec 06 PHP
php 验证码制作(网树注释思想)
Jul 20 PHP
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
Sep 19 PHP
php在服务器执行exec命令失败的解决方法
Mar 03 PHP
PHP函数学习之PHP函数点评
Jul 05 PHP
JoshChen_php新手进阶高手不可或缺的规范介绍
Aug 16 PHP
Linux下安装PHP MSSQL扩展教程
Oct 24 PHP
WordPress中邮件的一些修改和自定义技巧
Dec 15 PHP
PHP生成静态HTML文档实现代码
Jun 23 PHP
php获取ajax的headers方法与内容实例
Dec 27 PHP
PHP 对象继承原理与简单用法示例
Apr 21 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写的serv-u的web申请账号的程序
2006/10/09 PHP
PHP高级OOP技术演示
2009/08/27 PHP
PHP输出当前进程所有变量/常量/模块/函数/类的示例
2013/11/07 PHP
php使用json_decode后数字对象转换成了科学计数法的解决方法
2017/02/20 PHP
js中巧用cssText属性批量操作样式
2011/03/13 Javascript
返回顶部按钮响应滚动且动态显示与隐藏
2014/10/14 Javascript
基于javascript实现checkbox复选框实例代码
2016/01/28 Javascript
jquery对Json的各种遍历方法总结(必看篇)
2016/09/29 Javascript
JS button按钮实现submit按钮提交效果
2016/11/01 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
2017/02/08 Javascript
Javascript中的getter和setter初识
2017/08/17 Javascript
AngularJS使用ui-route实现多层嵌套路由的示例
2018/01/10 Javascript
Vue中Quill富文本编辑器的使用教程
2018/09/21 Javascript
iview在vue-cli3如何按需加载的方法
2018/10/31 Javascript
在vue中获取微信支付code及code被占用问题的解决方法
2019/04/16 Javascript
微信小程序页面传多个参数跳转页面的实现方法
2019/05/17 Javascript
vue-router二级导航切换路由及高亮显示的实现方法
2019/07/10 Javascript
微信小程序实现上传多个文件 超过10个
2020/03/30 Javascript
原生js实现表格循环滚动
2020/11/24 Javascript
解决python爬虫中有中文的url问题
2018/05/11 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
2020/03/30 Python
django美化后台django-suit的安装配置操作
2020/07/12 Python
Pycharm2020.1安装无法启动问题即设置中文插件的方法
2020/08/07 Python
HTML5 Canvas画线技巧——实现绘制一个像素宽的细线
2013/08/02 HTML / CSS
印度购物网站:TATA CLiQ
2017/11/23 全球购物
英国最专业的健身器材供应商之一:Best Gym Equipment
2017/12/22 全球购物
英国在线女鞋目的地:SIMMI
2018/12/27 全球购物
巴西网上药店:Drogaria Araujo
2021/01/06 全球购物
小学后勤管理制度
2014/01/14 职场文书
清正廉洁演讲稿
2014/05/22 职场文书
市级青年文明号申报材料
2014/05/26 职场文书
2014年安全生产目标责任书
2014/07/23 职场文书
分公司总经理岗位职责
2014/07/30 职场文书
会计试用期自我评价怎么写
2014/09/18 职场文书
律师授权委托书范本
2014/10/07 职场文书
教师培训学习心得体会
2016/01/21 职场文书