/** * Get data from site Ngoisao and update to redis * @param array $params - array (article_id, original_url) * @return Boolean */ public function updateShareUrl($params) { // Default response $response = NULL; try { $article_id = intval($params['article_id']); $article_url = $params['original_url']; //get config key $config = Thethao_Global::getApplicationIni(); // Get redis instance $redisInstance = Thethao_Global::getRedis('article'); //make key $keyCache = Thethao_Global::makeCacheKey($config['view']['keyReis']['ngoisao']); //set redis $response = $redisInstance->hSet($keyCache, $article_id, $article_url); } catch (Exception $ex) { Thethao_Global::sendLog($ex); } return $response; }
/** * Get list league and season by team attend * @param int $teamID * @return array|boolean * @author QuangTM */ public function getListLeagueAndSeasonTeamAttend($teamID) { $result = array(); try { // Get redis instance $redisInstance = Thethao_Global::getRedis('article'); // Get key cache $pattern = vsprintf($this->_team_match_league, array($teamID, '*')); // Get array key $arrKeys = $redisInstance->keys($pattern); // Pattern for get league $pattern = '/' . str_replace('*', '(\\d+)', $pattern) . '/'; $match = null; foreach ($arrKeys as $key) { if (preg_match($pattern, $key, $match)) { $result[$match[1]] = $redisInstance->sMembers($key); } } } catch (Exception $ex) { Thethao_Global::sendlog($ex); } return $result; }
/** * Get matches id which player attends * @param int $playerID * @param int $fromDate unix timestamp * @param int $toDate unix timestamp * @param boolean $reverse * @param int $limit * @param int $offset * @return array|boolean * @author QuangTM */ public function getMatchesPlayerAttend($playerID, $fromDate, $toDate, $reverse = TRUE, $limit = 20, $offset = 0) { try { // Get redis instance $redisInstance = Thethao_Global::getRedis('article'); // Get key redis for adding match by team // Get key cache $keyTennisMatches = vsprintf($this->_tennis_player_matches, $playerID); // Get array match id $arrMatchesID = array(); if ($reverse === TRUE) { $arrMatchesID = $redisInstance->zRevRangeByScore($keyTennisMatches, $toDate, $fromDate, array('withscores' => TRUE, 'limit' => array($offset, $limit))); } else { $arrMatchesID = $redisInstance->zRangeByScore($keyTennisMatches, $fromDate, $toDate, array('withscores' => TRUE, 'limit' => array($offset, $limit))); } // Return result return $arrMatchesID; } catch (Exception $ex) { Thethao_Global::sendLog($ex); } }
/** * @author : PhongTX - 29/01/2013 * call job update caching FE * @param : string $strPageCode * @name : delBlockByPage * @copyright : FPT Online * @todo : delBlockByPage */ public function delBlockByPage($strPageCode, $device) { try { $redisInstance = Thethao_Global::getRedis('article'); //get key cache mobile $keyCache = vsprintf($this->_key_block_detail, array($strPageCode, $device)); return $redisInstance->delete($keyCache); } catch (Exception $ex) { //log error Thethao_Global::sendLog($ex); } }
/** * delete article from BE Editor by arr info * @param array $arrArticle * @return boolean|array * @author PhuongTN */ public function deleteArticle($arrArticle) { try { //default return $arrReturn = false; //get instance redis $redisInstance = Thethao_Global::getRedis('article'); //check can get redis instance if ($redisInstance) { //Rule1:Add list folder news if (!empty($arrArticle['cate_rule1'])) { //loop category rule1 foreach ($arrArticle['cate_rule1'] as $cateId) { //generate key cache with all article (text, video, photo) cate original $keyCache = vsprintf($this->_list_article_ids_by_rule_1, array($cateId, 0)); $redisInstance->zAdd($keyCache, -1, $arrArticle['article_id']); $rs = $redisInstance->zDelete($keyCache, $arrArticle['article_id']); if ($rs) { $totalRule1 = $redisInstance->get($keyCache . ':total'); if ($totalRule1 > 0) { $redisInstance->set($keyCache . ':total', $totalRule1 - 1); } } //generate key cache with all article (text, video, photo) cate original $keyCache = vsprintf($this->_list_article_ids_by_rule_1, array($cateId, $arrArticle['article_type'])); $redisInstance->zAdd($keyCache, -1, $arrArticle['article_id']); $rs = $redisInstance->zDelete($keyCache, $arrArticle['article_id']); if ($rs) { $totalRule1 = $redisInstance->get($keyCache . ':total'); if ($totalRule1 > 0) { $redisInstance->set($keyCache . ':total', $totalRule1 - 1); } } } } //Rule2:Add list folder + list on news if (!empty($arrArticle['cate_list_on'])) { //loop cate foreach ($arrArticle['cate_list_on'] as $cateId) { //generate key cache $keyCache = sprintf($this->_list_article_ids_by_rule_2, $cateId); $redisInstance->zAdd($keyCache, -1, $arrArticle['article_id']); $rs = $redisInstance->zDelete($keyCache, $arrArticle['article_id']); if ($rs) { $total = $redisInstance->get($keyCache . ':total'); if ($total > 0) { $redisInstance->set($keyCache . ':total', $total - 1); } } } } //Rule3:Latest news if (!empty($arrArticle['cate_rule3'])) { //loop cate rule 3 foreach ($arrArticle['cate_rule3'] as $cateId) { $keyCache = vsprintf($this->_list_article_ids_by_rule_3, array($cateId, 0)); $redisInstance->zAdd($keyCache, -1, $arrArticle['article_id']); $rs = $redisInstance->zDelete($keyCache, $arrArticle['article_id']); if ($rs) { $total = intval($redisInstance->get($keyCache . ':total')); if ($total > 0) { $redisInstance->set($keyCache . ':total', $total - 1); } } $keyCache = vsprintf($this->_list_article_ids_by_rule_3, array($cateId, $arrArticle['article_type'])); $redisInstance->zAdd($keyCache, -1, $arrArticle['article_id']); $rs = $redisInstance->zDelete($keyCache, $arrArticle['article_id']); if ($rs) { $total = intval($redisInstance->get($keyCache . ':total')); if ($total > 0) { $redisInstance->set($keyCache . ':total', $total - 1); } } } $keyCache = vsprintf($this->_list_article_ids_by_rule_3, array(SITE_ID, 0)); $redisInstance->zAdd($keyCache, -1, $arrArticle['article_id']); $rs = $redisInstance->zDelete($keyCache, $arrArticle['article_id']); if ($rs) { $total = intval($redisInstance->get($keyCache . ':total')); if ($total > 0) { $redisInstance->set($keyCache . ':total', $total - 1); } } $keyCache = vsprintf($this->_list_article_ids_by_rule_3, array(SITE_ID, $arrArticle['article_type'])); $redisInstance->zAdd($keyCache, -1, $arrArticle['article_id']); $rs = $redisInstance->zDelete($keyCache, $arrArticle['article_id']); if ($rs) { $total = intval($redisInstance->get($keyCache . ':total')); if ($total > 0) { $redisInstance->set($keyCache . ':total', $total - 1); } } } // end rule 3 $arrReturn = true; } //end check redis instance } catch (Exception $ex) { //writelog error Thethao_Global::sendLog($ex); } return $arrReturn; }
/** * Delete match in league by league id and match id * @param type $leagueId * @param type $matchId */ public function deleteMatchByLeague($leagueId, $matchId) { try { // Get redis instance $redisInstance = Thethao_Global::getRedis('object'); // Get key redis for adding match by league $keyCache = sprintf($this->_league_match, $leagueId); $redisInstance->zAdd($keyCache, -1, $matchId); return $redisInstance->zDelete($keyCache, $matchId); } catch (Exception $ex) { Thethao_Global::sendlog($ex); return false; } }
public function setListEndAward($arrParams, $data) { $arrReturn = true; try { //get instance redis $redisInstance = Thethao_Global::getRedis('article'); if ($redisInstance) { if (empty($data)) { $keyCache = vsprintf($this->_end_list_award, $arrParams['fromdate']); $redisInstance->delete($keyCache); //$redisInstance->zAdd($keyCache, '0', null); } else { $i = 1; foreach ($data as $key => $item) { $keyCache = vsprintf($this->_end_list_award, $arrParams['fromdate']); if ($i == 1 && !empty($item)) { $redisInstance->delete($keyCache); } //echo $json_encode($item); $item['display_order'] = 100 - $item['display_order']; $redisInstance->zAdd($keyCache, $item['display_order'], json_encode($item)); $i++; } } } } catch (Exception $ex) { Thethao_Global::sendLog($ex); } return $arrReturn; }