public function latest($count)
{
$key = 'latest.' . $count;
$cacheKey = $this->getCacheKey($key);
$articles_latest = Redis::get($cacheKey);
if($articles_latest)
return $articles_latest;
$articles_latest = Articles::orderBy('id', 'desc)->take($count)->get();
Redis::put($cacheKey, $articles_latest, 1);
return $articles_latest;
}
.env:
CACHE_DRIVER=redis
以上代码的执行产生错误: Predis \ ClientException:命令'PUT'不是注册的Redis命令。
答案 0 :(得分:0)
您可以通过Cache facade访问已配置的Redis缓存,也可以为此使用“记住”功能:
public function latest($count)
{
$key = 'latest.' . $count;
$cacheKey = $this->getCacheKey($key);
return Cache::remember($cacheKey, 60, function() {
return Articles::orderBy('id', 'desc)->take($count)->get();
});
}
我假设1是一分钟,请注意,在Laravel 5.8中,缓存参数列表更改为使用秒而不是分钟。另外,您还应该查看有关代码格式的PSR编码标准。