20) { return []; } return StatusHashtag::whereHashtagId($id) ->whereStatusVisibility('public') ->whereHas('media') ->skip($stop) ->latest() ->take(9) ->pluck('status_id') ->map(function ($i, $k) use ($id) { return self::getStatus($i, $id); }) ->all(); } public static function coldGet($id, $start = 0, $stop = 2000) { $stop = $stop > 2000 ? 2000 : $stop; $ids = StatusHashtag::whereHashtagId($id) ->whereStatusVisibility('public') ->whereHas('media') ->latest() ->skip($start) ->take($stop) ->pluck('status_id'); foreach($ids as $key) { self::set($id, $key); } return $ids; } public static function set($key, $val) { return Redis::zadd(self::CACHE_KEY . $key, $val, $val); } public static function del($key) { return Redis::zrem(self::CACHE_KEY . $key, $key); } public static function count($id) { $key = 'pf:services:status-hashtag:count:' . $id; $ttl = now()->addMinutes(5); return Cache::remember($key, $ttl, function() use($id) { return StatusHashtag::whereHashtagId($id)->count(); }); } public static function getStatus($statusId, $hashtagId) { return ['status' => StatusService::get($statusId)]; } }