Настройка Laravel 7 для использования с PhpRedis
Предисловие
После очистки rnet integer в попытке выяснить, как правильно установить и использовать PhpRedis, как рекомендовано Laravel, мне не удалось найти ни единого источника правды или руководства, которое не оставило бы мне больше вопросов, чем ответов.
Я надеюсь, с помощью сообщества, создавать и постоянно улучшать это руководство здесь.
Цели этого руководства
- Предоставить пошаговое руководство по установке и настройке PhpRedis для Laravel 7 в Homestead в наиболее правильном и будущем- возможен доказательный способ.
- Объясните, как использовать Redis теперь, когда PhpRedis установлен / настроен.
Почему бы просто не использовать Predis?
Согласно Laravel 7 документов, Predis, похоже, был заброшен, и в будущих версиях Laravel он может больше не поддерживаться. Кроме того, PhpRedis превосходит Predis.
PhpRedis и Predis: сравнение реальных производственных данных
Ссылки
Как установить PhpRedis для Laravel в Ubuntu
PhpRedis в Laravel - Redis Series Episode 2
Установка PHP REDIS PHP7 Branch On Fre sh Установить Homestead PHP7
Laravel 7 Redis Docs
Установка / настройка PhpRedis на fre sh установке Laravel 7 в Homestead
В этом руководстве предполагается, что вы используете Laravel 7 в среде разработки Homestead.
Установка пакета PhpRedis.
1. S SH в вашу усадьбу.
$ vagrant ssh
2. Загрузите пакет PhpRedis.
$ wget https://github.com/phpredis/phpredis/archive/master.zip
После завершения загрузки вы должны увидеть файл с именем master.zip с помощью команды ls
.
3. Извлеките папку phpredis-master из master.zip, затем удалите master.zip. Переместите извлеченную папку в ваш каталог / etc / . Затем перейдите в извлеченную папку phpredis-master.
$ unzip master.zip
$ rm master.zip
$ sudo mv phpredis-master/ /etc/
$ cd /etc/phpredis-master/
4. Подготовьте среду сборки для расширения PhpRedis PHP.
$ phpize
$ ./configure
$ make && make install
5. Обновите файл redis.ini с помощью Vim или другого редактора.
Обязательно замените 7.4 версией PHP, которую вы используете. Вы можете проверить, запустив php -v
. В моем случае он вернул PHP 7.4.4 . Затем я запустил ls /etc/php/
, чтобы вывести список моих PHP папок и нашел каталог / etc / php / 7.4 / .
$ sudo vim /etc/php/7.4/fpm/conf.d/redis.ini
Теперь вы должны открыть файл в вашем Vim редактор. Скопируйте строку ниже и затем нажмите i в Vim, чтобы начать вставку. Затем вставьте, щелкнув правой кнопкой мыши и выбрав вставить, или нажав Shift + Ins .
extension = / etc / phpredis-master / modules / redis.so
После добавления строки выйдите из режима редактирования, нажав Es c, затем сохраните и выйдите, нажав : wq , а затем Enter .
6. Перезапустите службы
Убедитесь, что вы находитесь в каталоге / etc / phpredis-master /
Снова замените 7.4 версией PHP, которую вы используете .
$ sudo service php7.4-fpm restart
$ sudo service nginx restart
7. Убедитесь, что все работает.
$ sudo nginx -t
В случае успеха должно появиться следующее:
nginx: синтаксис файла конфигурации /etc/nginx/nginx.conf в порядке nginx: файл конфигурации /etc/nginx/nginx.conf тест прошел успешно
Настройка Laravel 7 для использования PhpRedis.
Теперь у вас должен быть PhpRedis установлен на вашем сервере. Теперь мы настроим Laravel, чтобы начать использовать PhpRedis.
1. Измените псевдоним Redis на RedisManager .
Откройте config / app. php, а затем в псевдонимах изменение массива Redis на RedisManager
'aliases' => [
...
'RedisManager' => Illuminate\Support\Facades\Redis::class,
...
]
Вы можете переименовать Redis во что-то другое, кроме RedisManager, но я только что выполнил предложение в Laravel docs для согласованности.
Проверьте, работает ли Redis
Добавьте в Интернет следующее. php файл маршрутов и затем перейдите к маршруту в вашем приложении.
Route::get('/redis', function () {
$app = RedisManager::connection();
$app->set('key', 'Testing PhpRedis');
echo $app->get('key');
});
При переходе к yoursite.local / redis вы должны увидеть сообщение «Тестирование PhpRedis».
Использование Redis в ваших проектах
После установки PhpRedis и обновили конфигурацию Laravel, теперь вы можете начать использовать Redis в своем проекте.
Использование Redis на вашем контроллере
// ExampleController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use RedisManager;
class ExampleController extends Controller
{
public function index()
{
$visits = RedisManager::incr('visits');
return $visits;
}
}
FAQ
Почему мы должны переименовывать псевдоним Redis в RedisManager?
Опять же, поскольку Laravel 7 использует PhpRedis по умолчанию, почему мы должны переименовывать псевдоним Redis в RedisManager?
Как переименование псевдонима Redis в RedisManager повлияет на мое приложение и на то, как я его использую?
Laravel 7 говорит, что PhpRedis используется по умолчанию, так зачем мне все это делать?
У меня успешно работает PhpRedis локально, но когда я ой на Vapor, это не работает. Что мне делать?
Что делать, если я не использую Homestead?
Todo