Что установлено на вашем сервере Redis?
- Redis Open Source из официального репозитория Redis, последняя версия на момент установки
- Обязательный пароль, заданный через requirepass и сгенерированный при установке
- Хранение AOF включено (appendonly yes)
- Удалённые подключения на порту 6379
- Параметр vm.overcommit_memory = 1, который рекомендует документация Redis
- Брандмауэр, в котором открыты только порты 22 и 6379, плюс fail2ban для SSH
Какой размер нужен для Redis?
Redis держит все данные в оперативной памяти, поэтому размер данных определяет размер сервера. Фиксированной цифры в документации по администрированию нет, но там предупреждают, что при интенсивной записи экземпляр может занимать до двойного обычного объёма памяти, пока сохраняет файл RDB или переписывает AOF. Ориентир такой: 1 ГБ подходит для небольшого кэша или хранилища сессий, а для больших данных выбирайте оперативную память примерно вдвое больше их размера. Если этого мало, увеличьте сервер в панели, а ваши данные и IP-адрес останутся прежними.
| Применение | Размер | Цена | Выбрать |
|---|---|---|---|
| Стартовый | 1 GB RAM · 1 vCore · 25 GB NVMe | $2.58/мес. | |
| Средний | 2 GB RAM · 1 vCore · 40 GB NVMe | $4.01/мес. | |
| Мощный | 4 GB RAM · 2 vCore · 60 GB NVMe | $6.89/мес. |
Кому подходит?
- Несколько серверов приложений, которым нужен общий кэш или хранилище сессий
- Очереди Laravel, Django, Rails или Node.js, которые переезжают на отдельный Redis
- Приложения со структурами в памяти: pub/sub, счётчики, рейтинги
- Разработчики, которым нужен удалённый Redis для разработки и тестирования
Что будет после заказа?
- Задайте размер и оплатите заказ.
- Сервер запускается, и Redis устанавливается сам. На вкладке «Обзор» дождитесь, пока в строке «Приложение» появится сообщение, что Redis готов.
- Скопируйте строки «Адрес подключения» и «Пароль». Строки «Логин» нет, потому что пароль относится к пользователю Redis по умолчанию.
- Проверьте подключение: redis-cli -h IP -a PASSWORD ping
- Передайте приложению строку подключения: redis://:PASSWORD@IP:6379/0
- Если используете Redis как кэш, задайте maxmemory-policy allkeys-lru, а затем ограничьте порт 6379 своими адресами.
С каждым сервером
- Ежедневные бэкапы входят в цену
- Безлимитный трафик
- Полный root-доступ
- Позже можно увеличить или уменьшить RAM и CPU, а диск увеличить
- Расположение: Istanbul · IST-1.
Полезно знать
- Порт 6379 открыт в интернет и не защищён TLS, поэтому пароль и данные идут без шифрования. Ограничьте доступ: ufw delete allow 6379/tcp, затем ufw allow from YOUR_IP to any port 6379.
- При установке maxmemory задаётся примерно в три четверти оперативной памяти. Дойдя до лимита, Redis отказывается принимать новые записи. Если вы измените размер сервера, поднимите это значение в /etc/redis/redis.conf.
- Redis 8 и новее распространяется по лицензиям RSALv2, SSPLv1 или AGPLv3. Если вы собираетесь предлагать Redis другим как услугу, прочитайте условия.
- Redis ставится из собственного репозитория и сам не обновляется. Новые версии вы устанавливаете через apt.
Redis: вопросы и ответы
Как подключиться к серверу Redis?
Ваша строка подключения — redis://:PASSWORD@IP:6379/0. Из командной строки выполните redis-cli -h IP -a PASSWORD. Подключение без пароля получает ошибку NOAUTH, так что каждая удалённая команда должна сначала пройти аутентификацию.
Сколько оперативной памяти нужно Redis?
Объём оперативной памяти для Redis определяет размер ваших данных, и твёрдой официальной цифры нет. Ориентир такой: для небольшого кэша или хранилища сессий можно начать с 1 ГБ. При интенсивной записи память во время сохранений может удваиваться, поэтому выбирайте оперативную память примерно вдвое больше размера данных.
Теряет ли Redis данные при перезапуске?
Нет. В этой установке у Redis включено хранение AOF: каждая запись добавляется на диск, и после перезапуска данные восстанавливаются из этого файла. Политика fsync по умолчанию срабатывает раз в секунду, поэтому при внезапном сбое можно потерять не больше записей за последнюю секунду.
Что происходит, когда у Redis заканчивается память?
В этой установке maxmemory равен примерно трём четвертям оперативной памяти, и при достижении лимита Redis отказывается принимать новые записи. Для кэша добавьте maxmemory-policy allkeys-lru в /etc/redis/redis.conf и выполните systemctl restart redis-server. Тогда на пределе Redis сам вытесняет старые ключи.
Зашифровано ли подключение к Redis?
После установки у подключений к Redis нет TLS, поэтому пароль и данные идут без шифрования. Ограничьте доступ своим IP-адресом или откройте SSH-туннель командой ssh -L 6379:127.0.0.1:6379 root@IP. Приложение на том же сервере подключается к 127.0.0.1, так что его трафик не покидает машину.
Можно ли создать для приложения отдельного пользователя Redis?
Да, через ACL Redis. Например: ACL SETUSER uygulama on >STRONG_PASSWORD allkeys +@all -@dangerous. Затем сохраните это в файл настроек командой CONFIG REWRITE. Строка подключения станет такой: redis://uygulama:STRONG_PASSWORD@IP:6379/0.