1、在GatewayWorker/Lib/Store.php大概在84行下添加一行代碼:self::$instance->auth(\Config\Store::$redis_auth);
2、在Applications/YourApp/Config/Store.php大概在52行下添加一行代碼:public static $redis_auth = "";
具體代碼如下:
GatewayWorker/Lib/Store.php
// redis 驅(qū)動
elseif(\Config\Store::$driver == \Config\Store::DRIVER_REDIS)
{
if(!isset(\Config\Store::$$config_name))
{
echo "\\Config\\Store::$config_name not set\n";
throw new \Exception("\\Config\\Store::$config_name not set\n");
}
if(!isset(self::$instance))
{
ini_set('default_socket_timeout',-1);
self::$instance = new \GatewayWorker\Lib\StoreDriver\Redis();
$config = \Config\Store::$$config_name;
// 只選擇第一個(gè)ip作為服務(wù)端
$address = current($config);
list($ip, $port) = explode(':', $address);
$timeout = 1;
self::$instance->connect($ip, $port, $timeout);
//redis認(rèn)證
self::$instance->auth(\Config\Store::$redis_auth);
self::$instance->setOption(\Redis::OPT_SERIALIZER, \Redis::SERIALIZER_PHP);
}else{
try{
self::$instance->ping();
}catch (\RedisException $e){
self::$instance = new \GatewayWorker\Lib\StoreDriver\Redis();
$config = \Config\Store::$$config_name;
// 只選擇第一個(gè)ip作為服務(wù)端
$address = current($config);
list($ip, $port) = explode(':', $address);
$timeout = 1;
self::$instance->connect($ip, $port, $timeout);
self::$instance->setOption(\Redis::OPT_SERIALIZER, \Redis::SERIALIZER_PHP);
}
}
return self::$instance;
}
Applications/YourApp/Config/Store.php
class Store
{
// 使用文件存儲,注意使用文件存儲無法支持workerman分布式部署
const DRIVER_FILE = 1;
// 使用memcache存儲,支持workerman分布式部署
const DRIVER_MC = 2;
// 使用redis存儲(推薦),支持workerman分布式部署
const DRIVER_REDIS = 3;
// DRIVER_FILE 或者 DRIVER_MC 或者 DRIVER_REDIS(推薦)
public static $driver = self::DRIVER_REDIS;
//reids的auth
public static $redis_auth = "";
//$driver為DRIVER_MC/DRIVER_REDIS時(shí)需要配置memcached/redis服務(wù)端ip和端口
public static $gateway = array(
'127.0.0.1:6379',
);
// $driver為DRIVER_FILE時(shí)要配置此項(xiàng),實(shí)際配置在最下面一行
public static $storePath = '';
}
// 實(shí)際在這里配置的Store::$storePath ,默認(rèn)為臨時(shí)目錄
Store::$storePath = sys_get_temp_dir().'/workerman-your-app/';