public static function createCacheRandWords(array $condition = array(), $expired = 24) { ini_set('memory_limit', '512M'); $return_pagenum_list = array(); $expired = $expired * 3600; //一天 $pagenum_expired = 2 * $expired; //两天 $file_cache = \Yii::$app->cache_data_file; $cache_key_letter_pagenum = sprintf('$s|%s|%s|%s', 'disease_words', 'caches', 'randwords', 'pagenum'); $cache_letter_pagenum_data = $file_cache->get($cache_key_letter_pagenum); if ($cache_letter_pagenum_data) { $return_pagenum_list = $cache_letter_pagenum_data; } //获取字母所对应的数据 $letter_list = 'abcdefghijklmnopqrstuvwxyz'; $len = strlen($letter_list); $return_list = array(); $max_kw_length = 2500; // $size; for ($i = 0; $i < $len; $i++) { $wd = strtoupper($letter_list[$i]); $pagenum = isset($return_pagenum_list[$wd]) ? $return_pagenum_list[$wd] : 0; $pagenum = intval($pagenum) + 1; $tmp_offset = $pagenum * $max_kw_length; $return_info = Search::search_disease_symptom_words_byinitial($wd, $tmp_offset, $max_kw_length, $condition); if (count($return_info['list']) == 0 && $pagenum > 0) { $return_info = Search::search_disease_symptom_words_byinitial($wd, 0, $max_kw_length, $condition); $pagenum = 0; } $ret = $return_info['list']; $return_list[$wd] = $ret; $return_pagenum_list[$wd] = $pagenum; } self::createRandWordsForRedis($return_list); $cache_key_letter_words = sprintf('$s|%s|%s|%s', 'disease_words', 'caches', 'randwords', 'words'); $file_cache->set($cache_key_letter_words, $return_list, $expired); $file_cache->set($cache_key_letter_pagenum, $return_pagenum_list, $pagenum_expired); return $return_list; }