/** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { $keys = Redis::keys(env('CACHE_PREFIX') . '*'); $values = $keys ? Redis::command('MGET', $keys) : []; $result = array_filter(array_map(function ($json) { return json_decode($json); }, $values)); return response()->json($result); }
/** * Function remove all redis data for specified language * * @param $language */ public function clear($language) { if (Redis::del(Key::posts($language))) { $this->info('Remove all entries for key ' . Key::posts($language)); } if (Redis::del(Key::tags($language))) { $this->info('Remove all entries for key ' . Key::tags($language)); } foreach (Redis::keys(Key::post('*', $language)) as $key) { if (Redis::del($key)) { $this->info('Remove all entries for keys ' . $key); } } }
public function all($limit = 10) { if (!($tagKeys = Redis::keys("tags:{$this->language}:*"))) { $posts = $this->loader->loadList(); foreach ($posts as $item) { $post = $this->loader->load($item['slug'], $item); foreach ($post['tags'] as $tag) { if (Redis::sadd(Key::tags($tag), $item['slug']) && !in_array(Key::tags($tag), $tagKeys)) { $tagKeys[] = Key::tags($tag); } } } } $tags = []; foreach ($tagKeys as $key) { $chunks = explode(':', $key); $key = array_pop($chunks); $tags[$key] = Redis::scard(Key::tags($key)); } arsort($tags); return array_slice($tags, 0, $limit); }