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(1)
Oct 09 PHP
PHP实现多服务器session共享之NFS共享的方法
Mar 16 PHP
PHP 读取和修改大文件的某行内容的代码
Oct 30 PHP
php iconv() : Detected an illegal character in input string
Dec 05 PHP
解决FastCGI 进程超过了配置的活动超时时限的问题
Jul 03 PHP
php实现的DateDiff和DateAdd时间函数代码分享
Aug 16 PHP
php数组排序usort、uksort与sort函数用法
Nov 17 PHP
PHP获取POST数据的几种方法汇总
Mar 03 PHP
php与python实现的线程池多线程爬虫功能示例
Oct 12 PHP
PHP让数组中有相同值的组成新的数组实例
Dec 31 PHP
php+mysql开发中的经验与常识小结
Mar 25 PHP
phpQuery采集网页实现代码实例
Apr 02 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
Laravel框架路由设置与使用示例
2018/06/12 PHP
Thinkphp 框架扩展之行为扩展原理与实现方法分析
2020/04/23 PHP
PHP数组array类常见操作示例
2020/05/15 PHP
创建公共调用 jQuery Ajax 带返回值
2012/08/01 Javascript
JavaScript创建对象的写法
2013/08/29 Javascript
兼容主流浏览器的iframe自适应高度js脚本
2014/01/10 Javascript
jQuery实现行文字链接提示效果的方法
2015/03/10 Javascript
一种基于浏览器的自动小票机打印实现方案(js版)
2016/07/26 Javascript
jquery实现图片放大点击切换
2017/06/06 jQuery
es6 字符串String的扩展(实例讲解)
2017/08/03 Javascript
解决vue.js 数据渲染成功仍报错的问题
2018/08/25 Javascript
Vue.js实现双向数据绑定方法(表单自动赋值、表单自动取值)
2018/08/27 Javascript
手机浏览器唤起微信分享(JS)
2020/10/11 Javascript
Python使用reportlab将目录下所有的文本文件打印成pdf的方法
2015/05/20 Python
python动态网页批量爬取
2016/02/14 Python
python操作小程序云数据库实现简单的增删改查功能
2019/06/06 Python
详解python中__name__的意义以及作用
2019/08/07 Python
Python的条件锁与事件共享详解
2019/09/12 Python
numpy.array 操作使用简单总结
2019/11/08 Python
python实现智能语音天气预报
2019/12/02 Python
详解python with 上下文管理器
2020/09/02 Python
Django配置Bootstrap, js实现过程详解
2020/10/13 Python
Evisu官方网站:日本牛仔品牌,时尚街头设计风格
2016/12/30 全球购物
英国男女奢华内衣和泳装购物网站:Figleaves
2017/01/28 全球购物
美国领先的家居装饰和礼品商店:Kirkland’s
2017/01/30 全球购物
美国汽车轮胎和轮毂销售网站:Tire Rack
2018/01/11 全球购物
海滩咖啡馆:Beach Cafe
2018/02/02 全球购物
Holiday Inn中国官网:IHG旗下假日酒店预订
2018/04/08 全球购物
日本卡普空电视游戏软件公司官方购物网站:e-CAPCOM
2018/07/17 全球购物
Genny意大利官网:意大利高级时装品牌
2020/04/15 全球购物
少先队入队活动方案
2014/02/08 职场文书
通用自荐信范文
2014/03/14 职场文书
优质服务口号
2014/06/11 职场文书
2014年工程部工作总结
2014/11/25 职场文书
财务人员入职担保书
2015/09/22 职场文书
小学生六年级作文之关于感恩
2019/08/16 职场文书