47 lines
1.2 KiB
PHP
47 lines
1.2 KiB
PHP
<?php
|
||
namespace server\components;
|
||
|
||
class Redis{
|
||
|
||
public static $_instance;
|
||
|
||
private static $_reconnectNum = 3;
|
||
|
||
public static function instance(){
|
||
|
||
/**
|
||
* 配置数据.
|
||
*/
|
||
|
||
try{
|
||
|
||
if (empty(self::$_instance)) {
|
||
echo date('Y-m-d H:i:s')."重新实例化redis.......".PHP_EOL;
|
||
global $configFile;
|
||
self::$_instance = new \Redis();
|
||
self::$_instance->connect($configFile['redis']['host'],$configFile['redis']['port']);
|
||
self::$_instance->auth($configFile['redis']['options']['parameters']['password']);
|
||
} else {
|
||
if(!self::$_instance->isConnected()){
|
||
throw new \Exception('redis连接断开' . " \n");
|
||
}
|
||
}
|
||
|
||
}catch (\Exception $e){
|
||
|
||
if(self::$_reconnectNum > 0){
|
||
self::$_reconnectNum --;
|
||
usleep(500000);
|
||
if(!empty(self::$_instance)){
|
||
self::$_instance = '';
|
||
}
|
||
return self::instance();
|
||
}else{
|
||
echo "REDIS连接超时:" . $e->getMessage() . "\n";
|
||
}
|
||
}
|
||
return self::$_instance;
|
||
}
|
||
|
||
|
||
}
|