redis->executeCommand('HGETALL', [$cacheKey]); if(!empty($ticket)){ $arr = []; $i = 0; $x = 0; foreach($ticket as $key => $val){ $i++; if($i%2 == 0){ $arr[$x]['value'] = $val; $x++; }else{ $arr[$x]['key'] = $val; } } $ticketArr = []; foreach($arr as $key => $val){ $ticketArr[$val['key']] = $val['value']; } unset($ticketArr['info_already_get_by_sql']); return $ticketArr; } $ticket = xhActiveTicketClass::find()->where(['id' => $id])->asArray()->one(); if(empty($ticket)){ return []; } $params = [$cacheKey]; $params[] = 'info_already_get_by_sql'; $params[] = 'ok';//redis没有办法设置带空值的键,加此可以数据空时表示取过 foreach($ticket as $key => $val){ $params[] = $key; $params[] = $val; } Yii::$app->redis->executeCommand('HMSET',$params); return $ticket; }*/ public static function add($data) { $data = xhActiveTicketClass::add($data, true); //存入缓存 baseService::setCacheByData($data, 'xhActiveTicketClass', '', Yii::$app->params['oneDayExpireTime']); return $data; } /** * 通过ID获取数据 * @param $id * @return bool */ public static function getById($id) { $preKey = configDict::getCacheKey('xhActiveTicketClass'); $cacheKey = $preKey.$id; $cacheData = baseService::getCache($cacheKey); if(empty($cacheData)){ $data = baseService::setCacheById($id, 'xhActiveTicketClass', $cacheKey, Yii::$app->params['oneDayExpireTime']); if($data === false){ return false; } return $data; } return $cacheData; } public static function updateById($id, $data) { $data['id'] = $id; $re = xhActiveTicketClass::updateById($id, $data); $reData = $re['data']; baseService::setCacheByData($reData, 'xhActiveTicketClass'); return $re; } }