Как установить Redis на Ubuntu 24.04 и использовать его в Laravel

Админ
3 часа назад
0 комментария
Как установить Redis на Ubuntu 24.04 и использовать его в Laravel

Redis — одна из самых популярных систем хранения данных в памяти. Благодаря высокой скорости работы Redis используется для кеширования, хранения сессий, организации очередей, ограничения количества запросов (Rate Limiting), публикации сообщений (Pub/Sub) и множества других задач.

Если вы разрабатываете приложения на Laravel, знание Redis практически обязательно. В этой статье мы рассмотрим, как установить Redis на Ubuntu 24.04, подключить его к Laravel и использовать для кеширования и очередей.


Что такое Redis

Redis (Remote Dictionary Server) — это высокопроизводительная NoSQL база данных типа «ключ — значение», которая хранит данные в оперативной памяти.

В отличие от MySQL или PostgreSQL, Redis оптимизирован для максимально быстрого чтения и записи данных.

Среднее время ответа Redis измеряется микросекундами.


Где используется Redis

Redis применяется практически во всех современных веб-приложениях:

  • кеширование данных;

  • хранение пользовательских сессий;

  • очереди задач;

  • Rate Limiting;

  • хранение OTP-кодов;

  • хранение JWT и токенов;

  • Pub/Sub;

  • WebSocket;

  • кэширование запросов к базе данных;

  • хранение временных данных.

Laravel имеет встроенную поддержку Redis.


Почему Redis настолько быстрый

Главная причина высокой производительности заключается в том, что Redis хранит данные в оперативной памяти (RAM), а не на жестком диске.

Это позволяет:

  • мгновенно получать данные;

  • уменьшить нагрузку на MySQL;

  • ускорить работу сайта;

  • обслуживать тысячи запросов в секунду.


Обновление системы

Перед установкой обновите пакеты:

sudo apt update
sudo apt upgrade -y

Установка Redis

Ubuntu 24.04 уже содержит Redis в официальных репозиториях.

Установите сервер:

sudo apt install redis-server -y

Проверка версии

redis-server --version

Например:

Redis server v=7.x.x

Проверка статуса службы

sudo systemctl status redis-server

Если Redis не запущен:

sudo systemctl start redis-server

Включить автозапуск:

sudo systemctl enable redis-server

Проверка работы Redis

Запустите клиент:

redis-cli

Проверьте соединение:

ping

Ответ:

PONG

Выйти:

exit

Основные команды Redis

Записать значение:

SET name "Roman"

Получить значение:

GET name

Удалить ключ:

DEL name

Посмотреть все ключи (не рекомендуется использовать на production с большим количеством данных):

KEYS *

Установить время жизни:

SET code 123456 EX 300

Получить оставшееся время:

TTL code

Очистить текущую базу:

FLUSHDB

Очистить все базы:

FLUSHALL

Внимание: команды FLUSHDB и FLUSHALL удаляют данные без возможности восстановления.


Настройка Redis

Основной файл конфигурации:

/etc/redis/redis.conf

Полезные параметры:

Привязка к интерфейсу:

bind 127.0.0.1

Защищенный режим:

protected-mode yes

Пароль (если требуется):

requirepass MyStrongPassword

После изменения конфигурации:

sudo systemctl restart redis-server

Установка PHP-расширения Redis

Для Laravel потребуется расширение PHP.

Установите его:

sudo apt install php8.4-redis -y

Проверьте:

php -m | grep redis

Если вывод содержит redis, расширение успешно подключено.


Установка клиента Redis через Composer

Laravel поддерживает два клиента:

  • PhpRedis (рекомендуется);

  • Predis.

Для установки Predis выполните:

composer require predis/predis

Если используется расширение PhpRedis, дополнительная библиотека обычно не требуется.


Настройка Laravel

Откройте файл:

.env

Добавьте или измените параметры:

CACHE_STORE=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis

REDIS_CLIENT=phpredis

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

После изменения очистите кеш конфигурации:

php artisan optimize:clear

Использование Redis в Laravel

Кеширование

Сохранить значение:

use Illuminate\Support\Facades\Cache;

Cache::put('site_name', 'NesterWeb', 600);

Получить значение:

$name = Cache::get('site_name');

Удалить:

Cache::forget('site_name');

Использование фасада Redis

use Illuminate\Support\Facades\Redis;

Redis::set('username', 'Roman');

echo Redis::get('username');

Очереди Laravel

В файле .env:

QUEUE_CONNECTION=redis

Создать задачу:

php artisan make:job SendEmailJob

Запустить обработчик:

php artisan queue:work

Для production рекомендуется использовать Supervisor для автоматического запуска и контроля очередей.


Хранение сессий

В .env:

SESSION_DRIVER=redis

Laravel автоматически начнет хранить пользовательские сессии в Redis.


Ограничение количества запросов

Laravel позволяет использовать Redis для реализации Rate Limiting.

Например:

RateLimiter::attempt(
    'login:'.$request->ip(),
    5,
    fn () => true
);

Это ограничит количество попыток авторизации для одного IP-адреса.


Мониторинг Redis

Количество клиентов:

INFO clients

Использование памяти:

INFO memory

Статистика:

INFO stats

Просмотр всех разделов:

INFO

Полезные команды Redis

Информация о сервере:

INFO

Размер памяти:

MEMORY STATS

Количество ключей:

DBSIZE

Просмотр конфигурации:

CONFIG GET *

Частые ошибки

Connection refused

Проверьте:

sudo systemctl status redis-server

Redis extension not loaded

Проверьте:

php -m | grep redis

Class Redis not found

Обычно причина:

  • отсутствует расширение PhpRedis;

  • либо установлен Predis, но неверно указан REDIS_CLIENT.


Laravel не подключается к Redis

Очистите кеш конфигурации:

php artisan optimize:clear

Также убедитесь, что параметры в .env соответствуют настройкам сервера Redis.


Советы по безопасности

Чтобы Redis работал безопасно:

  • не открывайте порт 6379 в интернет без необходимости;

  • оставляйте protected-mode yes;

  • используйте сложный пароль, если сервер доступен по сети;

  • ограничивайте доступ через файрвол;

  • регулярно обновляйте Redis до актуальной версии;

  • не используйте команду KEYS * на production-серверах с большим количеством ключей — вместо нее применяйте SCAN.


Заключение

Redis — один из самых эффективных инструментов для повышения производительности веб-приложений. Он позволяет значительно снизить нагрузку на базу данных, ускорить обработку запросов и обеспечить стабильную работу приложений под высокой нагрузкой.

В Laravel Redis интегрирован практически во все ключевые компоненты: кеширование, сессии, очереди, ограничение запросов и работа с событиями. Освоив его установку и базовую настройку, вы получите мощный инструмент для создания быстрых и масштабируемых веб-приложений.

Понравилась статья? Поделитесь:

💬 Комментарии 0

Оставить комментарий

Пока нет комментариев.

Будьте первым, кто оставит своё мнение!