Возникли проблемы с методом кэширования PUT Redis в Laravel - PullRequest
0 голосов
/ 29 апреля 2019
    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 голосов
/ 29 апреля 2019

Вы можете получить доступ к сконфигурированному кешу 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 о форматировании кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...