PHP實(shí)現(xiàn)的redis主從數(shù)據(jù)庫(kù)狀態(tài)檢測(cè)功能示例
本文實(shí)例講述了PHP實(shí)現(xiàn)的redis主從數(shù)據(jù)庫(kù)狀態(tài)檢測(cè)功能。分享給大家供大家參考,具體如下:
實(shí)例:
<?php
/**
* 檢測(cè)多個(gè)主從redis數(shù)據(jù)庫(kù)是否掛掉
* 建立從數(shù)據(jù)庫(kù)$redis_db的二維數(shù)組,內(nèi)容包含每個(gè)從服務(wù)器的配置數(shù)據(jù)
*/
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 服務(wù)
$status= $redis->connect($host, $port);
if(!$status) {
$content .= "redis從數(shù)據(jù)庫(kù)( $host )無(wú)法連接 ! <br/>";
continue;
}
if(!empty($db_key['password'])) {
$pass = $redis->auth($db_key['password']);
if(!$pass) {
$content .= "redis從數(shù)據(jù)庫(kù)( $host )密碼錯(cuò)誤 ! <br/>";
continue;
}
}
try {
$config = $redis->info();
if('up' == $config['master_link_status']) {
} else {
$content .= "redis從數(shù)據(jù)庫(kù)( $host )掛掉了! <br/>";
}
}
catch(RedisException $e)
{
$content .= "redis從數(shù)據(jù)庫(kù)( $host )報(bào)錯(cuò):" . $e->getMessage()."<br/>";
}
}
//若報(bào)錯(cuò)信息不為空,發(fā)送報(bào)錯(cuò)郵件
if(!empty($content)) {
$title = '主從redis數(shù)據(jù)庫(kù)狀態(tài)檢測(cè)報(bào)錯(cuò) ';
$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數(shù)據(jù)庫(kù)狀態(tài)檢測(cè)報(bào)錯(cuò) 郵件發(fā)送失敗!'."\n";
$content = str_replace("<br/>", "\n", $content);
$message .= $content;
error_log($message,3,"error.log");
}
}
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php+redis數(shù)據(jù)庫(kù)程序設(shè)計(jì)技巧總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP基本語(yǔ)法入門教程》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- php操作redis數(shù)據(jù)庫(kù)常見(jiàn)方法實(shí)例總結(jié)
- PHP操作Redis數(shù)據(jù)庫(kù)常用方法示例
- PHP數(shù)據(jù)庫(kù)操作三:redis用法分析
- PHP的Laravel框架結(jié)合MySQL與Redis數(shù)據(jù)庫(kù)的使用部署
- php實(shí)現(xiàn)redis數(shù)據(jù)庫(kù)指定庫(kù)號(hào)遷移的方法
- 30個(gè)php操作redis常用方法代碼例子
- redis 隊(duì)列操作的例子(php)
- php結(jié)合redis實(shí)現(xiàn)高并發(fā)下的搶購(gòu)、秒殺功能的實(shí)例
- php Session存儲(chǔ)到Redis的方法
- PHP操作Redis常用技巧總結(jié)
- php+redis實(shí)現(xiàn)商城秒殺功能
- php操作redis緩存方法分享
- php操作Redis數(shù)據(jù)庫(kù)基本示例【安裝、連接、設(shè)置、查詢、斷開(kāi)】
相關(guān)文章
方便實(shí)用的PHP生成靜態(tài)頁(yè)面類(非smarty)
不喜歡Smarty,直接寫了一個(gè)生成靜態(tài)的類,方便簡(jiǎn)單實(shí)用,希望大家繼續(xù)完善。2008-11-11
淺析php fwrite寫入txt文件的時(shí)候用 \r\n不能換行的問(wèn)題
以下是對(duì)php中fwrite寫入txt文件的時(shí)候用 \r\n不能換行的問(wèn)題進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下2013-08-08
PHP實(shí)現(xiàn)的統(tǒng)計(jì)數(shù)據(jù)功能詳解
這篇文章主要介紹了PHP實(shí)現(xiàn)的統(tǒng)計(jì)數(shù)據(jù)功能,結(jié)合實(shí)例形式分析了php數(shù)據(jù)查詢與顯示處理的相關(guān)操作技巧,需要的朋友可以參考下2016-12-12

