The user id is in the data, but not the cache key - you're going to be using the data for one user, as the favorites for all users; you need to account for clearing the cache when favorites data changes. You seem to be using the banner variables in multiple actions - put the code to set that in the app controller. 1. I could use two `Cache::remember` in same method ? 2. I coudl join this two `Cache::remember` (I need change the first param)? public function favoriteStores() { $userId = $this->Auth->user('id'); $username = $this->Auth->user('username'); list($fullBanners, $smallBanners,) = Cache::remember( 'banners', function(){ $this->loadModel('Banners'); $fullBanners = $this->Banners->full(); $smallBanners = $this->Banners->small(); return [$fullBanners, $smallBanners]; }); list($stores, $favoriteStores) = Cache::remember( 'stores', function(){ $stores = $this->Stores->myStores($this->Auth->user('id')); $favoriteStores = $this->Stores->favoriteStores(); return [$stores, $favoriteStores]; }); $this->set(compact('fullBanners', 'smallBanners', 'userId', 'username', 'stores', 'favoriteStores')); }