Заметки сисадмина

Установка Redis из исходного кода на Ubuntu 18.04

Введение

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

Из этой статьи вы узнаете как установить Redis из исходного кода на Ubuntu 18.04.

Установка Redis из исходного кода на Ubuntu 18.04

Подготовка

Для начала установите необходимые для компиляции зависимости.


$ sudo apt update
$ sudo apt install build-essential tcl gcc libc6-dev make

Установка и настройка

Поскольку исходный код не нужно долго хранить, загрузите его в /tmp каталог.

Перейдите во временный каталог:


$ cd /tmp


Загрузите архив. По данной ссылке всегда будет доступна последняя стабильная версия:


$ curl -O http://download.redis.io/releases/redis-stable.tar.gz

Затем распакуйте архив:


$ tar xzf redis-stable.tar.gz

Перейдите в каталог с исходным кодом:


$ cd redis-stable

Скомпилируйте двоичные файлы:


$ make


Затем выполните установку:


$ sudo make install


Теперь Redis установлен. Пришло время его настроить.

Создайте каталог, в котором будет храниться файл конфигурации:


$ sudo mkdir /etc/redis


Скопируйте файл конфигурации из каталога с исходным кодом:


$ sudo cp /tmp/redis-stable/redis.conf /etc/redis

Затем откройте файл в редакторе, чтобы внести кое-какие изменения:


$ sudo vim /etc/redis/redis.conf


Найдите директиву supervised и поменяйте ее значение на systemd:


supervised systemd


Далее найдите директиву dir и поменяйте ее значение на /var/lib/redis:


dir /var/lib/redis

Сохраните файл и закройте редактор.

Создание системного файла Redis

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

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


$ sudo vim /etc/systemd/system/redis.service


И внесите в него следующие данные:


[Unit]
Description=Redis In-Memory Data Store
After=network.target

[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always

[Install]
WantedBy=multi-user.target

Директивы User и Group указывают на то, под каким пользователем и группой будет запущена служба. В целях безопасности служба будет запущена не от root а от пользователя redis, которого вы создадите чуть позже.

Сохраните файл и закройте редактор.

Создание пользователя Redis и каталога для данных

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

Это можно сделать одной командой:


$ sudo adduser --system --group --no-create-home redis


Затем создайте каталог /var/lib/redis:


$ sudo mkdir /var/lib/redis

Сделайте пользователя redis владельцем этого каталога:


$ sudo chown redis:redis /var/lib/redis

И наконец, настройте права для каталога, чтобы обычные пользователи не имели к нему доступ:


$ sudo chmod 770 /var/lib/redis

Запуск и тестирование

Запустите службу systemd, выполнив:


$ sudo systemctl start redis


Проверьте, нет ли ошибок:


$ sudo systemctl status redis


Чтобы протестировать службу, подключитесь к серверу redis используя redis-cli:


$ redis-cli

Проверьте соединение, выполнив:


127.0.0.1:6379> PING


В ответ вы должны получить:


PONG


Затем установите ключ:


127.0.0.1:6379> set movie "Terminator 2: Judgment Day"


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


127.0.0.1:6379> get movie


В ответ вы должны получить значение, которое установили:


"Terminator 2: Judgment Day"


Чтобы вернуться назад в shell, выполните:


127.0.0.1:6379> exit


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

Перезапустите сервис:


$ sudo systemctl restart redis


А затем снова подключитесь к серверу и проверьте, сможете ли вы все еще получить значение установленного ключа:


$ redis-cli
127.0.0.1:6379> get movie

Вернитесь назад в shell, выполнив:


127.0.0.1:6379> exit


Убедившись, что служба работает, настройте ее на автоматический запуск при загрузке системы. Для этого выполните:


$ sudo systemctl enable redis


Заключение

Теперь Redis полностью настроен и готов к работе.

Поделиться
Комментарии
Максим Орлов

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

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

Ваш Email адрес не будет опубликован. Все обязательные поля обозначены *