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

1. Основные концепции и характеристики Redis

Redis - это база данных NoSQL, которая хранит данные в памяти (RAM) и обеспечивает высокую скорость доступа. Благодаря этим характеристикам она широко используется для следующих целей.

  • Кэш (Cache): Для увеличения скорости отклика данных веб-приложений данные, которые часто запрашиваются, хранятся в Redis и быстро извлекаются.
  • Хранилище сессий (Session Storage): Позволяет быстро получать информацию о сессиях пользователей и управлять данными сессий.
  • Очередь задач (Queue): Асинхронная очередь задач, которая работает в паре с библиотеками, такими как Celery, для планирования и быстрого выполнения задач.
Инфографика основных концепций Redis

Основные преимущества Redis

  • Скорость: Данные хранится в памяти, поэтому чтение и запись происходят быстро, что минимизирует задержки при ответах.
  • Поддержка различных структур данных: Поддерживает не только простое хранилище ключ-значение, но и различные структуры, такие как списки, множества и хэш-таблицы.
  • Масштабируемость: Можно расширять емкость хранения данных и производительность обработки через кластеризацию.

Летучесть Redis и опции сохранения данных

По умолчанию Redis спроектирован для работы с летучими данными, поэтому при перезагрузке сервера данные в памяти могут быть утеряны. Чтобы решить эту проблему, Redis предлагает две опции сохранения данных.

  • RDB (Redis Database) снимки: Каждые определенные промежутки времени данные из памяти сохраняются в виде снимков на диск.
  • AOF (Append-Only File): Все операции записи записываются на диск, чтобы можно было восстановить данные после перезагрузки сервера.

Если вы используете Redis исключительно для кэширования, вам не нужно сильно беспокоиться о летучести данных, но если требуется постоянное сохранение данных, вы можете воспользоваться этими опциями.

2. Файл настроек Redis (redis.conf)

Основной файл настроек Redis, redis.conf, позволяет детально настраивать поведение сервера Redis. Обычно он располагается по пути /etc/redis/redis.conf и создается автоматически при установке Redis.

Основные параметры настройки файла redis.conf

Диаграмма структуры конфигурационного файла Redis
1) Сетевые настройки
  • port: Устанавливает порт, который использует сервер Redis. Стандартный порт - 6379.
port 6379
  • bind: Определяет IP-адреса, к которым сервер Redis будет привязан. По умолчанию это 127.0.0.1, что позволяет подключаться только локально.
bind 127.0.0.1
2) Настройки безопасности
  • requirepass: Устанавливает пароль для доступа к серверу Redis. Если опция не указана, доступ возможен без пароля.
requirepass yourpassword
  • protected-mode: Режим защиты Redis от внешнего доступа, по умолчанию установлен на yes, что позволяет только локальные соединения.
3) Управление памятью
  • maxmemory: Устанавливает максимальный объем памяти, который может использовать Redis. Если ограничения нет, используется доступная память системы.
maxmemory 256mb
  • maxmemory-policy: Политика, определяющая, что удалять, когда память заполнена. allkeys-lru удаляет наименее недавно использованные данные.
maxmemory-policy allkeys-lru
4) Настройки сохранения данных
  • save: Рекомендует периодически создавать снимки RDB и сохранять их на диск. Например, скорее всего, настройки ниже создадут снимок, если изменяется более 1000 ключей за 60 секунд.
save 60 1000
  • appendonly: Активирует режим AOF для повышения надежности сохранения данных. Если установить на yes, все операции записи будут записываться в файл AOF.
appendonly yes
5) Настройки логирования и отладки
  • loglevel: Указывает уровень логирования. notice записывает только общие сообщения, а debug записывает всю отладочную информацию.
loglevel notice
  • logfile: Указывает путь к файлу журнала. По умолчанию это stdout, что означает, что записи не производятся в отдельный файл.
logfile /var/log/redis/redis.log

3. Как применить изменения настроек Redis

После редактирования необходимых параметров в файле настроек можно перезапустить сервер Redis, чтобы применить изменения.

sudo systemctl restart redis-server

Чтобы проверить, работает ли Redis должным образом после изменения настроек, можно использовать следующую команду.

redis-cli ping

PONG означает, что сервер Redis работает правильно.

В заключение

Мы рассмотрели основные концепции Redis и ключевые параметры файла настроек. Redis можно настроить для оптимизации производительности и надежности, поэтому важно оптимизировать настройки в соответствии с целями использования. В следующей части мы подробно рассмотрим опции сохранения данных Redis - RDB и AOF.