A cache is defined as a short-term computer memory where information is stored for easy retrieval. This means that this information doesn’t have to be recreated every time the request is made.
Laravel provides a cache() function to help store desired data in memory, fetch it when needed, and remove it when it is no longer needed, which means a faster response time to requests to applications.
cache()->remember()cache()->remember() is used to store some data in memory.
The definition of remember() is shown below.
function remember($key, $ttl, Closure $callback)
remember() takes in a unique key ($key). This is to be able to differentiate between all the cached data, and also to be used to fetch the data when needed.
It also takes in time duration ($ttl), which tells it how long to store this data for (usually in seconds). But you may use the now() helper to avoid stress.
Finally, it takes a callback ($callback), where the data to be stored is created - or processed.
To store an array of registered users for 2 days:
$users = cache()->remember('app-users', now()->addDays(2), function () {
return User::all();
});
cache()->rememberForever()This works just like cache()->remember(), except that it doesn’t take in duration and caches the data forever, unless it is deleted.
rememberForever() is defined as follows.
function rememberForever($key, Closure $callback);
To store an array of accepted currencies forever:
$accepted = cache()->rememberForever('app-users', function () {
return ['usd', 'gbp'];
});
cache()->get()To get some cached data, pass its key to cache()->get().
get() is defined as follows.
function get($name);
All it takes in is the unique key that is used in the remember() method.
To get all the stored registered users:
$users = cache()->get('app-users');
cache()->delete()To remove cached data before its expiration, you can delete it by passing its unique key to the cache()->delete() function.
The definition of delete() shows that it only takes the key of the data to be deleted.
function delete($key);
To delete the cached list of registered users:
$users = cache()->delete('app-users');
cache()->deleteMultiple()Deleting each cached entry might be a long process if you have cached many things. Use cache()->deleteMultiple() to delete multiple caches by passing their unique keys as an array.
function deleteMultiple($keys);
To delete the cached list of users and posts:
$cache = cache()->deleteMultiple(['app-users', 'app-posts']);
cache()->clear()clear() takes in no parameters and clears the cache of the application.
Clear all the application cache:
$cache = cache()->clear();
cache()->has()To check if data has been cached, or still exists, use has(). Pass its unique key to cache()->has() to check. has() returns a Boolean.
function has($key);
Check if users have been cached:
return cache()->has('app-users');