Laravel中的PUT Redis缓存方法出现问题

时间:2019-04-29 13:36:59

标签: laravel redis

    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命令。

1 个答案:

答案 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编码标准。