public function action_index() { //Load Config $dataType = \Config::load('api', 'api')['data-type']; //Get Paramator $getDataType = \Input::post('dataType') ? \Input::post('dataType') : 1; //Get MemData $mem = new Mem(); $data['result'] = $mem->memRead($dataType[$getDataType]); $data['dataType'] = $getDataType; $this->template->title = 'Top » Index'; $this->template->content = \View::forge('top/index', $data); }
static function init() { if (!self::$obj) { self::$obj = new Mem(); } return self::$obj; }
public static function get_mem_ins() { if (null === self::$mem_instance) { self::$mem_instance = new Memcache(); } return self::$mem_instance; }
function doLogin() { // $db = Db::init('hihus'); // $sql = 'select * from users where 1=1'; // $res = $db->query($sql); // while($l = $res->fetch(PDO::FETCH_ASSOC)){ // print_r($l); // } $mem = Mem::get('users'); $mem->set("hihu", "100", 10 * 60); $s = $mem->get("hihu"); var_dump($s); }
public function __construct() { parent::__construct(); $this->mem = Mem::get_mem_ins(); $this->mem->addserver('127.0.0.1', 11211); $this->params = $this->input->post(NULL, TRUE); //分页设置 if (isset($this->params['page_now'])) { $this->page_now = $this->params['page_now']; } if (isset($this->params['page_size'])) { $this->page_size = $this->params['page_size']; } //加载全局模块 $this->load->model('Base_model'); $this->load->model('Table_model'); $this->st(array(), '系统未知错误!!!', API_UNKNOW_ERR); $this->check_api_map(); }
/** * 現在走行中の全列車情報 * @param $metro * @return array */ public function get_trainAllInfo() { //Load Config : $dataType = \Config::load('api', 'api')['data-type'][1]; //Get MemData $mem = new Mem(); $data = $mem->memRead($dataType); foreach ($data as $key => $value) { $responseData[] = array('_id' => $value['@id'], 'railway' => strrchr($value['odpt:railway'], 'TokyoMetro'), 'trainType' => strrchr($value['odpt:trainType'], 'TokyoMetro'), 'delay' => strrchr($value['odpt:delay'], 'TokyoMetro'), 'startingStation' => strrchr($value['odpt:startingStation'], 'TokyoMetro'), 'terminalStation' => strrchr($value['odpt:terminalStation'], 'TokyoMetro'), 'fromStation' => strrchr($value['odpt:fromStation'], 'TokyoMetro'), 'toStation' => strrchr($value['odpt:toStation'], 'TokyoMetro'), 'railDirection' => strrchr($value['odpt:railDirection'], 'TokyoMetro'), 'trainOwner' => strrchr($value['odpt:trainOwner'], 'TokyoMetro')); } return $this->response($responseData); }
//print_r($memd->getStats()); //$memd->add('mkey','mvalue',600); $memd->set('mkey','mvalue',600); //$memd->replace('mkey','mvalue2',600); echo $memd->get('mkey'); $memd->delete('mkey'); //$memd->flush(); //慎用 //$memd->set('num',1,0); //$memd->increment('num',5); $memd->decrement('num',5); echo $memd->get('num'); $data = array( 'key1' => 'value1', 'key2' => 'value2', ); $memd->setMulti($data); $result = $memd->getMulti(array('key1','key2')); //$memd->deleteMulti(array('key1','key2')); print_r($result); echo $memd->getResultCode(); echo $memd->getResultMessage(); */ include 'memcached.class.php'; $m = new Mem(); $m->addServer(array(array('127.0.0.1', 11211))); echo $m->s('key', 'value', 1800); echo $m->s('key'); $m->s('key', NULL); echo $m->s('key'); echo $m->getError();
if ($type == "system") { DB::setBait('zhq', array('127.0.0.1', 'weiche_web', 'root', '000000', 3306)); DB::setHarpoon('zhq'); $sql = 'SELECT * FROM `weiche_ads` where `baidu_id` = ?'; $ads_data = DB::getAll($sql, array($ads_id)); foreach ($ads_data as $key => $vv) { $ads_data[$key]['id'] = $vv['baidu_id']; } } else { $key = $type . 'vehicle_web_ads_json' . $ads_id; $ads_json = Mem::get($key); if (!$ads_json) { $url = 'http://img-src.buding.cn/weiche/ads.js?flush=' . time(); $ads_json = @file_get_contents($url); if ($ads_json) { Mem::set($key, $ads_json, 600); } else { die('json is null'); } } $ads_data = json_decode($ads_json, true); } $banner = ''; $style = ''; if (!$ads_id) { switch ($type) { case 'drivers': $style = 'body{background: url(http://img.buding.cn/weiche/2015/05/19/81c4b3e7b83b7b9e10711af089a7304d.jpg) repeat;}#ads{url(http://img.buding.cn/weiche/2015/05/19/81c4b3e7b83b7b9e10711af089a7304d.jpg) repeat;background-size: 100% auto}'; $banner = 'http://img.buding.cn/weiche/2015/05/21/e286b21b54b95ea24a041bbb4d3c5097.jpg'; break; case 'testdrive':
return; } foreach ($this->servers as $k => $sid) { $proName = $k; $sidName = "{$sid}:{$this->port}"; if (!file_exists($proName)) { mkdir($proName, 0777); } echo "\n\n{$proName}\n" . str_repeat("=", 32) . "\n"; $this->connect($sid, $this->port); $items = $this->getExtendedStats('items'); foreach ($items[$sidName]['items'] as $slab_id => $slab) { echo "{$proName}: handle slab-{$slab_id} data\n"; if (!is_array($slab)) { continue; } $logfile = "{$proName}/" . date('Ymd') . "-slab{$slab_id}.log"; $item = $this->getExtendedStats('cachedump', $slab_id, 0); //遍历所有Slab foreach ($item[$sidName] as $key => $info) { $func($key, $info, $logfile); } } } } } $proList = array('appcache3' => '10.15.201.40'); $mem = new Mem(); $mem->setServer($proList, '30008'); //$mem->info();//查看状态 //$mem->gc();//查看状态
public static function run($getDataType) { //Load Config $config = \Config::load('api', 'api'); $dataType = $config['data-type']; if ($getDataType == 1) { //日比谷線のロケーション情報 //rdf:type=odpt:Train 90秒更新 $url = $config['url'] . '?rdf:type=odpt:Train&odpt:railway=odpt.Railway:TokyoMetro.Hibiya&acl:consumerKey=' . $config['token']; $setKeyName = $dataType[1]; } else { if ($getDataType == 2) { //日比谷線の運行情報 //rdf:type=odpt:TrainInformation: 問題なく動いているかどうかを返す $url = $config['url'] . '?rdf:type=odpt:TrainInformation&odpt:railway=odpt.Railway:TokyoMetro.Hibiya&acl:consumerKey=' . $config['token']; $setKeyName = $dataType[2]; } else { if ($getDataType == 3) { //全駅情報(乗降人員数) //odpt:PassengerSurvey //フィルタかけるなら $@id=urn:ucode:ほにゃららかな $url = $config['url'] . '?rdf:type=odpt:PassengerSurvey&acl:consumerKey=' . $config['token']; $setKeyName = $dataType[3]; } else { if ($getDataType == 4) { //路線情報 $url = $config['url'] . '?rdf:type=odpt:Railway&dc:title=日比谷&acl:consumerKey=' . $config['token']; $setKeyName = $dataType[4]; } else { if ($getDataType == 5) { //路線情報 $url = $config['url'] . '?rdf:type=odpt:Train&acl:consumerKey=' . $config['token']; $setKeyName = $dataType[5]; } else { if ($getDataType == 6) { //路線情報 $url = $config['url'] . '?rdf:type=odpt:Railway&acl:consumerKey=' . $config['token']; $setKeyName = $dataType[4]; $setKeyNameLineAll = $dataType[7]; } else { \Session::set_flash('error', '電車情報がありません'); \Response::redirect('top/index'); } } } } } } //Connect API $curl = \Request::forge($url, 'curl'); $curl->set_method('get'); $response = $curl->execute(); $result = $curl->response(); //Write if ($result->status == 200) { $trainKey = 'odpt:trainNumber'; $data = json_decode($result->body, true); $mem = new \Mem(); if ($getDataType == 1) { foreach ($data as $key => $value) { //開発用 //$value[$trainKey] = 'A0000'; $r = $mem->memSave($setKeyName . ':' . $value[$trainKey], $value, $life_time = 3600); $all[] = $value; } $r = $mem->memSave($setKeyName, $all, $life_time = 3600); } else { if ($getDataType == 4 || $getDataType == 6) { foreach ($data as $value) { $memData = array(); $lineKey = strrchr($value['owl:sameAs'], 'TokyoMetro'); if ($lineKey == 'Tozai') { $lineKey = 'TokyoMetro.Tozai'; } else { if ($lineKey == 'Tsukiji') { $lineKey = 'TokyoMetro.Tsukiji'; } } //日本語の路線名 $memData['title'] = $value['dc:title']; foreach ($value['odpt:stationOrder'] as $key2 => $value2) { $stationIndex = $value2['odpt:index']; $memData[$stationIndex]['name'] = strrchr($value2['odpt:station'], 'TokyoMetro'); if ($memData[$stationIndex]['name'] == 'Tsukiji') { $memData[$stationIndex]['name'] = 'TokyoMetro.Tsukiji'; } //Connect API & GET INFO ABOUT STATITON $url = $config['url'] . '/' . $value2['odpt:station'] . '?acl:consumerKey=' . $config['token']; $curlStation = \Request::forge($url, 'curl'); $curlStation->set_method('get'); $resStationData = $curlStation->execute(); $stationData = $curlStation->response(); $memData[$stationIndex]['stationInfo'] = json_decode($stationData->body, true); sleep(10); //駅情報のみにキャッシュ化 $mem->memSave($setKeyName . ':' . $memData[$stationIndex]['name'], $memData[$stationIndex], $life_time = 2592000); } //目的駅までの所用時間を整形 foreach ($value['odpt:travelTime'] as $key3 => $value3) { if (isset($memData[$key3]) == true) { $memData[$key3]['travelTime'] = $value3['odpt:necessaryTime']; $memData[$key3]['toStation'] = strrchr($value3['odpt:toStation'], 'TokyoMetro'); $memData[$key3]['trainType'] = strrchr($value3['odpt:trainType'], 'TrainType'); } } //路線名のみを格納 if ($getDataType == 6) { $lineAll[] = $lineKey; } //路線情報ごとにキャッシュ化 $r = $mem->memSave($setKeyName . ':' . $lineKey, $memData, $life_time = 2592000); } //路線名のみを格納 if ($getDataType == 6) { $r = $mem->memSave($setKeyNameLineAll, $lineAll, $life_time = 2592000); } } else { $r = $mem->memSave($setKeyName, $data, $life_time = 3600); } } } if ($r) { echo 'success データ保存完了'; } else { echo 'error データ保存失敗'; } }