If you look at the source
#File: laravel/framework/src/Illuminate/Database/Query/Builder.php
public function remember($minutes, $key = null)
{
list($this->cacheMinutes, $this->cacheKey) = array($minutes, $key);
return $this;
}
You can see the remember
method uses a cacheKey
object property. This property is set in the getCacheKey
method
#File: laravel/framework/src/Illuminate/Database/Query/Builder.php
public function getCacheKey()
{
return $this->cacheKey ?: $this->generateCacheKey();
}
Which uses the generateCacheKey
method to create the cache key.
public function generateCacheKey()
{
$name = $this->connection->getName();
return md5($name.$this->toSql().serialize($this->getBindings()));
}
Here you can see that Laravel generates the cache key by using an md5
hash of
The Connection Name
The SQL Query
A PHP serialized version of the data bindings (i.e. "all the binded (bonded??) values")
This key generation is independent of the cache engine used.