Redis: кеш і черги
Встановлення Redis на VDS, пароль і прив'язка до локальної адреси, ліміт пам'яті та політика витіснення, а також різниця між кешем і чергою.
Оновлено 23 серпня 2026 р.
Redis тримає дані в пам'яті, тому його використовують для кешування, сесій, лічильників і черг завдань. На VPS він корисний рівно доти, доки вміщується в пам'ять: робочий набір, більший за вільну пам'ять, — це вже не прискорення, а причина падінь.
Встановлення
apt update && apt install -y redis-server # Debian, Ubuntu
dnf install -y redis # AlmaLinux, CentOS Stream
systemctl enable --now redis-server
redis-cli ping
Відповідь PONG означає, що сервер працює.
Обов'язкова конфігурація
Файл /etc/redis/redis.conf:
bind 127.0.0.1
protected-mode yes
requirepass long-random-password
maxmemory 512mb
maxmemory-policy allkeys-lru
appendonly no
systemctl restart redis-server
redis-cli -a 'password' ping
Сканери знаходять Redis без пароля, відкритий в інтернет, за лічені хвилини й використовують його для майнінгу. Якщо ваш застосунок на тій самій машині, залиште bind 127.0.0.1 і не відкривайте порт 6379 назовні. Якщо потрібен зовнішній доступ, використовуйте лише SSH-тунель або VPN.
Пам'ять і витіснення
Задайте maxmemory явно: без цього Redis зростає, доки система не почне вбивати процеси. Розумно віддати йому чверть пам'яті тарифу.
| Тариф | Пам'ять машини | maxmemory |
|---|---|---|
| VDS-1 | 2 GB | 256 MB |
| VDS-2 | 4 GB | 512 MB |
| VDS-3 | 8 GB | 1–2 GB |
| VDS-5 | 24 GB | 4–6 GB |
Політика залежить від ролі:
- кеш —
allkeys-lru, старі ключі витісняються непомітно; - черга завдань —
noeviction, втрачати завдання неприпустимо, краще помилка запису.
Не змішуйте кеш і чергу в одній базі саме через цю суперечність. Розділіть їх на різні номери баз (SELECT 1) або на два екземпляри.
Збереження на диск
За замовчуванням Redis періодично скидає знімок у dump.rdb. Для чистого кешу це зайвий запис на диск — вимкніть save. Для черг увімкніть appendonly yes: так завдання не загубляться після перезавантаження машини.
Майте на увазі, що швидкість запису на диск обмежена тарифом: 60 MB/s на ядро, не нижче за 60 і не вище за 400 MB/s.
Моніторинг
redis-cli -a 'password' info memory
redis-cli -a 'password' info stats
redis-cli -a 'password' --stat
redis-cli -a 'password' slowlog get 10
Ключова метрика — evicted_keys: постійне зростання означає, що пам'яті не вистачає і кеш не окупається.
Типові помилки
| Симптом | Причина |
|---|---|
NOAUTH Authentication required | Застосунку не передали пароль |
OOM command not allowed | Досягнуто maxmemory за політики noeviction |
DENIED Redis is running in protected mode | Зовнішній доступ за bind 127.0.0.1 — так і задумано |
| Дані зникли після перезавантаження | Не увімкнено збереження |
| Машина пішла у swap | Сума maxmemory та інших сервісів перевищує пам'ять тарифу |
Не використовуйте
KEYS *на робочому сервері: команда блокує Redis, поки перебирає всі ключі. Для перебору використовуйтеSCAN.